シェルスクリプト間の変数渡し的な
aaa.sh
#!/bin/sh AAA=123 sh ./bbb.sh
bbb.sh
#!/bin/sh set -u echo $AAA
を実行すると
$ sh aaa.sh
./bbb.sh: line 5: AAA: unbound variable
になってしまう…… exportもしたくないしなーと思って先頭で変数を宣言してみたら。
$ AAA= sh aaa.sh 123 $ echo $AAA $
通った!しかも変数は残ってない!
あんまりよくわかってないけど、その行(?)だけの若干スコープの広い変数の扱いなのかな?
ちなみに。
$ AAA= ; sh aaa.sh ./bbb.sh: line 5: AAA: unbound variable
まあそうなりますよね。