私が持っているなら
$ x='This is a String'
$ export x
$ xterm &
[3] 14089
子プロセスが応答しないようです。
$echo $x
$
修正する: 変数を最初にエクスポートするときにプロセス全体にあるように見えますか? -
$ export xb
[1]+ Done xterm
durrantm.../durrantm$ export xb
durrantm.../durrantm$
# Note second export didn't say anything.
答え1
子プロセスが分岐すると、親プロセスの環境をその子プロセスにエクスポートできません。子は、回転時に親の現在の環境コピーを取得する分岐シェルです。それ以来、彼らは一人でした。
フォークする前に変数を設定するので、すべての子に設定された変数を表示する必要があります。ところで、スペルエラーが発生したようです。努力するecho $x
。
はい
親シェルで次の操作を行います。
$ x='This is a String'
$ export x
$ xterm &
[1] 28578
xtermから:
$ echo $x
This is a String
ログインファイルで変数がリセットされますか?
まれに、失われた変数が発生したり、set
親unset
の環境変数が削除され、子にきちんと渡されないことがあります。次のように確認できます。
# login shell
$ bash -c -l 'echo $x'
This is a String
# interactive shell
$ bash -c -i 'echo $x'
This is a String
-x
Bashのスイッチを使用して、上記の出力をより冗長にすることもできます。
$ bash -x -c -i 'echo $x'