実験のまとめ。 前置き bash では特に指定しない限り、 変数は常にグローバル な変数として扱われてしまいます。 #!/bin/bash function foo() { hoge="foo" } foo echo $hoge # foo と出力される 変数をつくるたびに、グローバルな領域を汚染していくのはよろしくないので、ここではグローバル化の対策として bash のビルトインコマンド local を使用します。 #!/bin/bash function foo() { local hoge="foo" } foo echo $hoge # 空出力 このように、明示的に local の変数だよーって宣言してあげると、関数をでたときには忘れる。なんだか逆な気がしますが...。 本題 bash では for ループに使用する変数 や、read で受け取る変数 も他の変数と同様に、特に指定し