zshに貼り付けたテキストで「cat >> file」が機能しないのはなぜですか?

zshに貼り付けたテキストで「cat >> file」が機能しないのはなぜですか?

以前はzshについて聞いたことがありませんでしたが、Catalinaにアップデートしたとき、MacOSはzshのためにbashをあきらめるよう強制しました。しかし、最近試していますcat >>。追加したい行を端末の他の場所からコピーして貼り付けます。

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

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

この場合、「This is a test」という行全体を貼り付けました。 (行末までを含む)bashとは異なり、zshはEnterを押すまで貼り付けたテキストを逆方向のビデオとして印刷します(時々?)。この場合、「Control-D」を押してテキストの貼り付けが完了したことを示します。この時点でbashは私に次のプロンプトを与えますが、ここではzshが私が理解できないメッセージを提供します。私はbashに戻ることを強く考えています。でも気になります。 zshは自分が何をしていると思いますか?誰かがこれがバグだと思いますか、それとも少なくともバグ機能だと思いますか?いつもそうではないようです。時にはあまり混乱しませんが、まだ間違った情報を取得します。

zsh: command not found: This

答え1

まず貼り付けると

cat >> test.txt

次に、押してEnter貼り付けます。

This is a test.

それから

  • を押しEnterてからを押すControlDか、
  • ~によるとControlD 二重

希望の結果を得ることができます(最初のケースではそして入力後の改行、2番目のケースいいえ)。


直接貼り付けると

cat >> test.txt
This is a test.

その後、2行目はcat入力として提供されませんが、コマンドラインの2行目としてZshに入力されます。

  • それからを押すと、EnterZshはそれに応じてこれらの2行を実行しようとしますzsh: command not found: This
  • その後、を押すと、ControlDZshは2行目に完了項目を一覧表示しようとします(これは必ずしもそうではありませんが)結果になる可能性がありますzsh: do you wish to see all 3734 possibilities (1867 lines)?(これを実行するタイミングと場所によって異なります)。

関連情報