使用heredoc的cat命令在zsh shell中无法工作

10

当我尝试时

cat > myfile << EOF
TEST TEXT
EOF

我只得到了一个空文件。使用echo命令也一样。出了什么问题?我想这可能与.zshenv配置文件中的某些冲突有关,但我不知道是什么。

我正在使用zsh 4.3.6 (x86_64-suse-linux-gnu)

更新:现在在zsh 5.0.5 (x86_64-suse-linux-gnu)上运行正常。


3
在我的zsh 4.3.9版本中可以正常工作。 - Barmar
4
在我的 Zsh 5.0.5 版本中有效。请使用“zsh -f”命令启动 zsh 并重试。 “zsh -f”命令可以忽略您的任何配置文件,即使将所有配置还原为默认值的 zsh。 - Francisco
2个回答

10
这里有另一种写法:

以下是另一种写法:

cat <<eos > filename
foo bar baz
eos

这在zsh中可行。

0
这可能是因为您的 /tmp 目录(或者您的 $TMPDIR 指向的任何位置)是只读的。
您可以通过在不同的 shell 中使用例如 strace -ff -s200 -o /tmp/zsh.log -p PID-goes-here 命令将 strace 附加到运行上述命令的 zsh 上,来发现问题所在。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接