回答:
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。