出力しようとしていますがa,b,c
、
これはうまくいきません:
a=(a b c)
IFS=, echo "${a[*]}"
しかし、これはうまくいきます:
a=(a b c)
IFS=,
echo "${a[*]}"
最初のものがなぜ機能しないのかを知っている人はいますか?
答え1
変数が拡張されたためです。今後IFS の新しい値が実際に設定されます。これの説明は次のとおりです。https://www.gnu.org/software/bash/manual/bash.html#Simple-Command-Expansion
現在のシェルに影響を与えずに値を設定するには、サブシェルを使用します。
(IFS=,; echo "${a[*]}")