私は次のようないくつかの答えを見つけました。区切られたテキストファイルを解析しています...次の構造を使用してください。
while IFS=, read xx yy zz;do
echo $xx $yy $zz
done < input_file
ここでIFS
変数はコマンドの前に設定されますread
。
私は読んでいたバッシュリファレンスしかし、これがなぜ正当なのか理解していません。
頑張った
$ x="once upon" y="a time" echo $x $y
bashコマンドプロンプトからエコーを受け取りません。誰かがこの構文を参照で定義し、IFS変数をこのように設定できるように指示できますか?これは特別なケースですか?それとも他の変数にも同様のことができますか?
ベストアンサー1
関連情報は以下で確認できます。マニュアルページBASH管理者が提供しました(最後の確認:2020年8月)。シェル構文セクション、単純なコマンド状態(強調追加):
簡単なコマンドはオプションの変数割り当て順序 その後の空間分離 単語とリダイレクト、制御演算子によって終了します。これ最初の単語実行するコマンドを指定し、引数0に渡されます。残りの単語は、呼び出されたコマンドに引数として渡されます。
したがって、希望の変数を渡すことができます。echo
変数はシェルで設定されず、コマンドに渡されるため、例は機能しません。殻が膨張し$x
て$y
今後コマンドを呼び出します。たとえば、次のように動作します。
$ x="once upon" y="a time" bash -c 'echo $x $y'
once upon a time