4
zshではなくbashでカットが失敗するのはなぜですか?
タブ区切りフィールドを含むファイルを作成します。 echo foo$'\t'bar$'\t'baz$'\n'foo$'\t'bar$'\t'baz > input 次の名前のスクリプトがあります zsh.sh #!/usr/bin/env zsh while read line; do <<<$line cut -f 2 done < "$1" 私はそれをテストします。 $ ./zsh.sh input bar bar これは正常に動作します。しかし、最初の行をbash代わりに呼び出すように変更すると、失敗します。 $ ./bash.sh input foo bar baz foo bar baz なぜこれが失敗しbashて動作するのzshですか? 追加のトラブルシューティング シバンの代わりに直接パスを使用envすると、同じ動作が生成されます。 echohere-stringを使用する代わりにでパイピングして<<<$lineも、同じ動作が生成されます。すなわちecho $line | cut -f 2。 使用するawk代わりに、cut 作品の両方のシェルのため。すなわち<<<$line awk '{print $2}'。