😀

ワンライナーで無限ループ

2024/07/03に公開

無限ループ

shell を叩いていると時々無限ループしたくなる、その時最も短い行で無限ループしたい

while

while :; do ./something; done

最も単純だがちょっと文法が分からなくなりがちな上に、回数制限もかけられない

for

for i in {0..42}; do ./something; done

回数制限を持たせられるが、長い、面倒くさい
文法は覚えていても良さそう

for i in {0..42}; do ./something --trial $i; done

使い道はある。

yes

yes ./something | sh

考える限り一番短い、回数制限をかけたい場合は head を使う

yes ./something | head -n 100 | sh

xargs

yes | xargs -I {} ./something

うーん、まぁ…
一応、実行回数ごとに引数に何回かを渡すこともできるようになる

seq 42 | xargs -I {} ./something --trial {}

repeat

repeat 42 ./something

csh系 (zsh) 使っているなら、イイんじゃない?

結論

yes コマンドは楽しい

GitHubで編集を提案

Discussion