私の bash シェルの 1 つが、他のシェルとは異なる動作をしています。どの設定が変更されたのかわかりませんが、これを確認してください。
hersh@huey$ for f in $(echo a b c); do echo foo $f; done
foo a
foo b
foo c
hersh@huey$ logout
Connection to huey closed.
hersh@spf$ for f in $(echo a b c); do echo foo $f; done
foo a b c
ホストhueyでは、「for」ループが期待どおりに機能しました。単語境界で分割されました。ホスト spf では、"for" ループが単語の境界で分割されず、全体が 1 つの項目として扱われていました。同様に、$(ls) を使用すると、大きな複数行全体が 1 つの項目として扱われ、最初の行の直前に「foo」が出力されます。
両方のホストで bash を実行しています。ホスト spf 上の他の bash シェルでも正常に動作します (単語境界で分割されます)。何がそれを変えることができますか?どちらも同じバージョンの bash (「4.2.25(1)-release (x86_64-pc-linux-gnu)」) を実行しています。同じソースから for-loop コマンド ラインをマウスでコピー アンド ペーストしたため、文字は同じです。
ありがとう!