id:sinsoku さんのツイートを見て思いついた。
for n in {1..10}; do rspec spec/foo_spec.rb || break; done
— 神速@リリカルエンジニア (@sinsoku_listy) 2017年11月7日
そして、稀に落ちるテストが再現するのを待つ
zshのrepeat便利なんだけど、exit statusが非0だったらrepeatを中断するrepeatがほしいな
— Pocke(ぽっけ) (@p_ck_) 2017年11月7日
作った
# exit statusが0であれば、指定した回数繰り返す $ crepeat 10 echo hello hello hello hello hello hello hello hello hello hello hello # 適当にexit 1するとrepeatがとまる。 $ crepeat 10 ruby -e 'p "a"; exit [true,false].sample' "a" "a" # 回数に負の値を指定すると、無限にexit statusが0の間無限にrepeatする $ crepeat -1 echo hello hello hello hello hello hello ....