为什么“cat >> file”在 zsh 中无法使用粘贴的文本?

为什么“cat >> file”在 zsh 中无法使用粘贴的文本?

我以前从未听说过 zsh,但当我更新到 Catalina 时,MacOS 迫使我放弃 bash,转而使用 zsh。但我最近在尝试使用cat >>.我要添加的行是从终端中的其他位置复制并粘贴的:

$ cat >> test.txt
This is a test.

zsh: do you wish to see all 3734 possibilities (1867 lines)? 

在本例中,我粘贴了整行“这是一个测试”。 (包括到行尾)。与 bash 不同,zsh 会(有时?)以反白方式打印粘贴的文本,直到我按回车键。在本例中,我按“Control-D”表示我已完成文本粘贴。此时,bash 会给我下一个提示,但是在这里,zsh 给我一条我不明白的消息。我正在强烈考虑回到 bash。但我很好奇:zsh 认为它在做什么?有其他人认为这是一个错误,或者至少是一个错误功能吗?它似乎也并不总是发生。有时我会得到不那么令人困惑但仍然不正确的信息:

zsh: command not found: This

答案1

如果你先粘贴

cat >> test.txt

然后按Enter,然后粘贴

This is a test.

进而

  • 按,Enter然后按ControlD, 或
  • ControlD 两次,

你会得到你正在寻找的结果(在第一种情况下,输入后换行,在第二种情况下,没有)。


如果直接粘贴

cat >> test.txt
This is a test.

那么第二行不会cat作为输入,但它将作为命令行中的第二行进入 Zsh。

  • 如果您随后按Enter,Zsh 将尝试相应地执行这两行,从而导致zsh: command not found: This.
  • 如果您随后按ControlD,Zsh 将尝试在第二行为您列出完成情况,可能(但并非总是)导致zsh: do you wish to see all 3734 possibilities (1867 lines)?(取决于您何时何地执行此操作)。

相关内容