2

Snow Leopard で本当に奇妙な問題に苦しんでいます。私の端末では、次の 2 つのスクリプトを作成しました。

初め:

#script-1.sh
export MY_VAR="This is my variable"

2 番目のスクリプト:

# script-2.sh, having +x permission
#!/bin/bash
echo $MY_VAR

ターミナルで、script-1 を source してから script-2 を子プロセスとして呼び出すと、出力が表示されません。

$> source script-1.sh
$> echo $MY_VAR
This is my variable
$> . script-2.sh
This is my variable
$> ./script-2.sh

$>

ここで何が間違っているのですか?Cygwinを使用してWindowsで同じシナリオを試しましたが、期待どおりに動作します.OSXでは、子プロセスがまったく認識$MY_VARしていないようです。

4

1 に答える 1

1

script-1.sh子プロセスで実行していませんか? あなたの例を 10.6.8 と 10.7.3 で試してみましたが、正しく動作します。コマンドsource script-1.shは と同じ. script-1.shで、同じコンテキストでスクリプトを実行します。エクスポートされた変数は環境変数であり、常に子プロセスにコピーされます。

あなたと同じ出力を再現できた唯一のシナリオは、exportscript-1.sh ファイルから省略した場合です。

于 2012-04-23T12:23:56.097 に答える