回答:
VAR1=value1 VAR2=value2 myScript args ...
vblank_mode=0 glxgears
。動作しますが、vblank_mode=0: command not found
実行後にも表示されますが、先頭に追加env
してもこれは発生しません。[テスト中...]どうやらzshは気に入らない(まだ正しく使用している)ようですが、bashは問題ありません。これからはこのenv
方法でいくと思います。
VAR1="hello" echo $VAR1
何も返されませんか?
VAR1="hello" bash -c 'echo $VAR1'
env VAR=value myScript args ...
VAR=value myScript args ...
PATH=$PATH:XYZ echo $PATH | grep XYZ
しかし、何の出力もないのはなぜですか?2.使用することと使用しないことの違いは何env
ですか?
PATH=$PATH:XYZ sh -c 'echo $PATH' | grep XYZ
-ここでは単一引用符が鍵となります
env
それを使用することと使用しないことの違いは何ですか?
IFS=$'\n' for l in lines; do ... done
置くだけ
export HOME=/blah/whatever
変更を加えたいスクリプトの時点。各プロセスには独自の環境変数のセットがあるため、スクリプトが終了すると、この定義は自動的に意味を持ちなくなります(それに伴い、環境が変更されたbashのインスタンスも)。
export
変数をサブシェルに渡しますが、それは親シェルを制御しません。「#!/ bin / sh」などで始まるスクリプトを記述している場合、設定した変数はスクリプトが終了すると消えます。
source
スクリプトを明示的に指定した場合にのみ、コマンドを入力したのと同じシェルによってスクリプトが実行されます。
$HOME
スクリプトから実行されるコマンドによって継承される場合は、エクスポートが必要です。そうでない場合で、の設定が$HOME
スクリプト自体の利益のためだけである場合は、スクリプトを変更して、以外のものを参照することをお勧めします$HOME
。