走れば
export TEST=foo
echo $TEST
fooを出力します。
走れば
TEST=foo echo $TEST
いいえ。エクスポートやスクリプトを使用せずにこの機能を取得するにはどうすればよいですか?
ベストアンサー1
これは、シェルがコマンドラインから変数を拡張するためです。今後実際にコマンドを実行しますが、この時点では変数は存在しません。使用する場合
TEST=foo; echo $TEST
動作します。
export
後で実行されるコマンドの環境に変数が表示されます(bashでこれがどのように機能するかについては、参照help export
)。 1つのコマンド環境にのみ変数を表示する必要がある場合は、試した方法を使用してください。
TEST=foo your-application
シェル構文はこれを次のように説明します。機能的に以下と同じ:
export TEST=foo
your-application
unset TEST
バラより仕様もっと学ぶ。
興味深いことに、このexport
コマンドは変数のエクスポートフラグを切り替えます。名前。その場合は、次のようにしてください。
unset TEST
export TEST
TEST="foo"
TEST
エクスポート時に定義されていない場合でもエクスポートされます。ただし、unset
エクスポートした属性はここで削除する必要があります。