1
私はSnow Leopardで本当に奇妙な問題に苦しんでいます。OSXエクスポートされた環境変数が子プロセスで継承されない
まず:私の端末では、私は2つのスクリプトを書いた
#script-1.sh
export MY_VAR="This is my variable"
2番目のスクリプト:ターミナルで
# script-2.sh, having +x permission
#!/bin/bash
echo $MY_VAR
、私はスクリプト-1を調達してから、スクリプト-2呼び出す場合子プロセスでは、出力は表示されません。
$> source script-1.sh
$> echo $MY_VAR
This is my variable
$> . script-2.sh
This is my variable
$> ./script-2.sh
$>
何が間違っていますか? Cygwinを使ってWindowsで同じシナリオを試してみましたが、期待通りに動作します。子プロセスが$MY_VAR
を全く知らないとOSXでは思われます。
子プロセスで 'script-1.sh'が実行されていないと思います。しかし、私は回避策として以下が働くことを発見しました。 '$> sh -c" script-1.sh && ./script-2.sh "' – lef
あなたの回避策は、あなたの例と基本的に同じです。 script-1が失敗した場合、script-2は実行されないことに注意してください。 – Kalicz