Linux BashでWinCMDスタイルを一時停止する正式な方法は何ですか?

Linux BashでWinCMDスタイルを一時停止する正式な方法は何ですか?

存在するWindowsバッチ/ CMD - 使用可能なスクリプトの実行を一時停止します。

echo 'This is before pause.'
pause
echo 'The key was pressed, continuing...'

bashこのような標準端末を使用してzshこれを達成するにはどうすればよいですか(ただし、他の端末もできるだけ機能する必要があります)。もちろん簡単なアプリを書くこともできますが、私が探しているC標準的な方法がないとは思いません。sleep

私は以下を使用してこれらの簡単な方法を見つけました。読む:

  • read -p 'Press [Enter] key to start backup...'
  • read -p 'Press any key to resume ...'
  • read -s -n 1 -p 'Press any key to continue . . .' 関数の内部

しかし、彼らは私にそれぞれXXX.sh: 4: read: arg count最初の23: read: Illegal option -nつを与えました。私はbashを使用しています4.4.19(1)-release

ベストアンサー1

readコマンドが機能しない主な理由は、bashコマンドが意図されていますがsh

これ引用記事説明する、

Unixシリーズオペレーティングシステムでは、シェルreadに組み込まれているコマンドです。bash

これは、使用中のシェルを含む他の多くのシェルにも組み込まれたコマンドですが、shinの構文ははるかに豊富です。readsh

#!/bin/bash
...
read -p 'Press [Enter] key to continue: '
...

ファイルを実行可能にし、プログラムで実行することを忘れないでください。

# Assume the script is called "demo"
chmod a+x demo
./demo

おすすめ記事