4
为什么cut用bash而不是zsh失败?
我用制表符分隔的字段创建一个文件。 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? 其他疑难解答 在shebang中使用直接路径而不是env产生相同的行为。 用管道echo代替而不使用here-string <<<$line也会产生相同的行为。即echo $line | cut -f 2。 使用awk的,而不是cut 作品的两个壳。即<<<$line awk '{print …