シェルでコマンド寿命変数を設定するには? [コピー]

シェルでコマンド寿命変数を設定するには? [コピー]

次の例を考えてみましょう。

file="test" echo $file

私の考えは、file命令の期間だけ持続することですecho $file$fileこのコマンド以降は持続しませんが、設定されていないかechoのように何も印刷されません。$file

コマンドの存続期間中に有効な変数をシェルで設定できますか?

編集する:提案されているように、シェルスクリプトや関数を使用したくありません。みんな これら 関連 質問

ベストアンサー1

コマンドラインでは、変数バインディングはコマンドラインが実行されるまで発生しません。ただし、$fileコマンドが拡張されるとパラメーター置換が発生し、これは実行前に発生する必要があります。

この問題に対する解決策は、コマンドを関数に入れることです。

fun()
{
   echo "file = " $file
}

file=abc fun

おすすめ記事