以下のbashコマンドのリストを含むファイルがあります。
echo 'foobar'
echo 'helloworld'
echo 'ok'
次のように簡単にパイピングしてこれらのコマンドを実行できます/bin/bash
。
cat commands | /bin/bash
途中で実行を一時停止してユーザー入力を待つにはどうすればよいですか?使うのはread
効果がないようです。
echo 'foobar'
echo 'helloworld'
read -p 'Press ENTER to continue'
echo 'ok'
答え1
次のように実行します。
/bin/bash commands
bash
ファイルを渡す stdin にファイルをパイプしますbash
。この場合、read
標準入力読み出しは、端末ではなくパイプストリームで行われます。echo 'ok'
ファイルを引数として指定してもbash
実行できますが、今回は標準入力はリダイレクトされません。
私はこのように実行したいと思います。比較するbash script.sh
これらの走りとそしての違いは何ですか./script.sh
?