带有heredoc的猫在zsh shell中不起作用

Ale*_*dan 7 shell zsh heredoc cat

当我尝试

cat > myfile << EOF
TEST TEXT
EOF
Run Code Online (Sandbox Code Playgroud)

我只是得到一个空文件。使用echo命令相同。这是怎么回事?我只能考虑.zshenv配置文件中的一些冲突,但我不知道它可能是什么......

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

Rob*_*ens 6

这是另一种写法:

cat <<eos > filename
foo bar baz
eos
Run Code Online (Sandbox Code Playgroud)

这在 zsh 中有效。


And*_*orn 0

如果您的 /tmp (或您的$TMPDIR点)是只读的,则可能会发生这种情况。

您应该能够通过将 strace 附加到您运行上述命令的 zsh 来发现问题所在,例如使用strace -ff -s200 -o /tmp/zsh.log -p PID-goes-here不同的 shell。