`IFS="value" コマンド`は多くのシェルで広く使用されていますが、公式文書を見つけるのは難しいです。公式記録はどこにありますか? [コピー]

`IFS=

IFS="value" command提供されたコマンドが持続している間だけIFS(Internal Field Separator)を一時的に変更する方法とよく見られますが、同様の使い方は失敗しそうな場合が多いです。

これらはすべて私の間違いであると確信していますが、私の誤解が何であるかを理解しようとしましたが、この機能の存在について言及する公式文書はまったく見つかりませんでした。

たぶん、どの用語を検索するのかわからない本当のケースかもしれません。機能にはわからない名前があり、かなり合理的な検索量では見つからないためかもしれません。

BASHマニュアル検索、posix仕様の関連部分検索、Bingチャットリクエストなどを試しました。私が見つけることができる唯一の結果は、人々がこれらの機能の存在を言及するだけであり、公式文書はまったくありません。この機能が必ず存在しなければならないという事実を知ることに加えて、(自分自身と他の人にとっては明らかに動作するため)、この機能があるか、むしろこの機能に関する公式文書が存在しないように感じられます。

したがって、StackExchangeに関する私の質問は、この機能が正確に何であり、その公式文書はどこにありますか?

私は現在、BASH、Posix、Linux、Unixなどの公式文書を探しています。

ベストアンサー1

この内容は次のように記録されます。「環境」列Bashのマニュアルは次のように言います:

単純なコマンドまたは機能の環境は、シェルパラメーターで説明されているようにパラメーター割り当てを先行することによって一時的に改善できます。これらのディレクティブは、コマンドで表示される環境にのみ影響します。

これは、あなたが要求する構文が次に適用されるIFS構文ではないことを意味します。どの変えるたとえば、HOME単一のコマンドの変数を設定するには、次のように実行できます。

HOME=/tmp/somedir mycommand

この構文は次にも文書化されています。bash(1)マニュアルページ、内容は次のとおりです(「SHELL GRAMMAR」セクションを参照)。

単純なコマンドは、一連のオプションの変数割り当てとスペースで区切られた単語とリダイレクトが続き、制御演算子によって終了されることです。

「簡単なコマンド拡張」セクションで:

単純なコマンドを実行すると、シェルは左から右の順に次の拡張、割り当て、およびリダイレクトを実行します。

  1. パーサによって変数割り当てとしてマークされた単語(コマンド名の前の単語)とリダイレクトは、後で処理するために保存されます。

  2. 変数の割り当てやリダイレクトではない単語は拡張されます。拡張後に残りの単語がある場合、最初の単語はコマンド名として扱われ、残りの単語は引数として扱われます。

  3. リダイレクトは上記の「リダイレクト」の説明に従って行われます。

  4. 各変数の割り当てでは、=に続くテキストは、変数に割り当てられる前に、チルダ拡張、パラメータ拡張、コマンド置換、算術拡張、および引用符の削除を受けます。

おすすめ記事