1

私の問題は自己記述的です:

script1.shに含まれるもの:

#!/bin/sh
export SOMEVAR=0
echo "1, SOMEVAR=$SOMEVAR"
./script2.sh
echo "2, SOMEVAR=$SOMEVAR"

script2.shに含まれるもの:

#!/bin/sh
SOMEVAR=1

./script1.shは以下を提供します:

1, SOMEVAR=0
2, SOMEVAR=0

私が欲しい間:

1, SOMEVAR=0
2, SOMEVAR=1

どうすれば希望の結果を得ることができますか?

4

1 に答える 1

4

sourceスクリプトを呼び出す代わりに(別名)を使用する.と、子プロセスは親環境を変更できません。

#!/bin/sh
export SOMEVAR=0
echo "1, SOMEVAR=$SOMEVAR"
. ./script2.sh
echo "2, SOMEVAR=$SOMEVAR"
于 2013-01-04T23:01:13.890 に答える