ただ、すでに地元の組み込みコマンドを使用して宣言することができる機能に
変数ローカルbashのmanページからのコメント
で述べたものをユーザー123ほめます。通常、変数とその値は関数とその呼び出し元で共有されます。
bash3.2.25->cat function.ss
#!/bin/bash
function child()
{
echo "child function called"
echo $var
}
function parent_global()
{
echo "parent_global called, child invoked outside parent"
var=5
}
function parent()
{
echo "parent called, child invoked inside parent"
local var=5
child
}
parent
parent_global
child
bash3.2.25->./function.ss
parent called, child invoked inside parent
child function called
5
parent_global called, child invoked outside parent
child function called
5
ので(ローカル組み込み)特に指定のない限り、あなたがする場合は、変数は、関数のスコープ外でグローバル表示されます。
は 'ローカルが関数内で使用される場合、それはその機能に制限見える範囲を持っている変数名を引き起こし、そのchildren.' – 123
なぜこれがコメントしていない答えは? – NPS
from man sh 'シェルは動的スコープを使用しているので、変数xが関数fに対してローカルであり、関数gを呼び出した場合、変数gは関数gを呼び出し、 への参照はg内で作成された変数xを参照し、 xという名前のグローバル変数にはありません。 – 123