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 で表示されます。