grepがそのパターンと一致しないときにこのループから抜け出したいと思います。ここでは、「高い」の目標は以下の通りであった。このループをbashで中断するにはどうすればいいですか?
- は出力(stdoutが影響を受けないこと)を参照してください
- パターン
- 停止処理のためのgrep、それをパターンを
を見つけていないされたら。そのが働いていない理由を
#!/bin/bash
set -ex
i=1
RERUN=0
while [ ${RERUN} == 0 ]
do
((i++))
echo -n "Rerun${i}"| tee >(grep --color=always 'Rerun[123]' ; export RERUN=$?)
echo ${RERUN}
sleep 1
done
私の推測では、それがされている別のシェルレベルで
正しい: –
'set -e'のためにBTW、'((i ++)) 'は実際には' i = 0'で失敗します(これは、 'set -e'が[非常に議論の余地がある] //mywiki.wooledge.org/BashFAQ/105) - アレゴリーをスキップし、急いで演習を読む)。 –
...今では、プロセスの置換の終了ステータスを得ることができますが、bash 4.4を実行している場合のみ可能です。これはどんなバージョンですか? –