1
私はbashに慣れていないので、私は困惑させるケースに会いました。Bash。可変可視性と生涯
-------point 1--------
-------point 2--------
El 1
El 3
El 2
var value
あなたが見ることができるように、関数f1は、2つの異なる方法で呼ばれていたし、彼らは非常に異なる影響を与える:
f1()
{
ar+=(1)
ar+=(3)
ar+=(2)
var="var value"
echo "0"
}
f2()
{
res=$(f1)
echo -------point 1--------
for i in ${ar[@]}; do
echo "El $i"
done
echo $var
echo -------point 2--------
f1>/dev/null
for i in ${ar[@]}; do
echo "El $i"
done
echo $var
}
f2
このスクリプトは、次のような結果を生成します。それは、このような場合の例です。最初の呼び出しでは、f1で宣言された配列と変数は明らかに破壊されました。 2番目の方法では、配列と変数が保存されました。
誰でも私に説明したり、適切なマニュアルへのリンクを教えてもらえますか?