私が知る限り、bash関数でローカル変数を作成するには2つの方法があります:サブシェルを作成するか、すべての変数をローカルとして宣言します。bashのローカル変数:ローカルとサブシェル
例えば:
# using local
function foo
{
local count
for count in $(seq 10)
do
echo $count
done
}
または
# using subshell
function foo
{
(
for count in $(seq 10)
do
echo $count
done
)
}
Obvisouslyあなたはすべてのローカル変数(ないに言及し(宣言を気にする必要はありませんので、サブシェルを使用したバージョンは、書くことが簡単です環境変数)は、getoptsのようなツールで作成/エクスポートされた変数です。しかし、私は、サブシールの作成にはオーバーヘッドがあると想像することができます。
だから、よりよいアプローチは何ですか?賛否両論は何ですか?
を終了します、だけでなく1000回のテストの上に 'time'のコマンドを実行し、見つけますオーバーヘッドから、私はそれが存在しない小さいですと思う。 – Anders