关于bash:macOS Sierra:$ {TAIL}在zsh中不起作用

macOS Sierra: ${TAIL} is not working in zsh

我试图在zsh(噢,我的zsh)中执行一些bash脚本。我发现$tail不在zsh工作。

猛击:

bash-3.2$ ${CD} /tmp; echo"test">> test.txt; ${TAIL} test.txt
bash: /tmp: is a directory
test

ZSH:

~ ${CD} /tmp; echo"test">> test.txt; ${TAIL} test.txt
zsh: command not found: tail -f
? /tmp

但是直接用尾巴是可以的

? /tmp tail -f test.txt
test
test

whereis tail
/usr/bin/tail
echo $PATH
/usr/local/bin:/usr/bin


我认为这是zsh中的一个经典案例,因为为什么$var在var="foo bar"不做我所期望的?

bash不同,默认情况下,zsh在传递给命令或作为for foo in $var在循环中使用时不拆分为单词。

1
var="foo bar"

手动启用标志为

1
setopt shwordsplit

那就和

1
echo"test">> test.txt; ${TAIL} test.txt