zshの読み取りコマンドでエラーが発生しました。

zshの読み取りコマンドでエラーが発生しました。

zsh でコマンドを実行するとread -p 'erasing all directories (y/n) ?' ansエラーが発生します。

read: -p: no coprocess

しかし、bashはプロンプトを印刷します。 zshでこれを行うにはどうすればよいですか?

ベストアンサー1

引き続き使用できますread。プロンプトを最初に印刷します。 Inは、使用するプロンプトを表示するのではなく、コプロセスから入力を読み取る必要があることzshを示します。-p

POSIX と互換性のある次のことができます。

printf >&2 '%s ' 'erase all directories? (y/n)'
read ans

ksh/zshread 'var?prompt'または bash と同様に、read -p prompt varプロンプトはスクリプトの通常の出力を汚染しないように stderr で表示されます。

おすすめ記事