シェル(bash)で無限ループを1行コードで書く方法をメモしておきます。
何度か「あれ?どうやって 1 行で書くんだっけ?」と思ったことがあるので、今後のために。
bashで無限ループ(1行コード)サンプル
- 1秒おきに「test」と無限ループを続けるシェル1行コードです。
コード
while true; do echo test; sleep 1s; done
結果
- 延々と「test」が出力されていますね。
改行はセミコロンで表現しよう
- サンプルコードを改行したら、以下のようになります。
- セミコロンで改行を表していたことがわかります。
while true do echo test sleep 1s done
そもそもbashでwhileループってどう書くの?
- 以下のようにwhileループを表しますよ!
while 条件式 do ループで行う処理 done
まとめ 1行で無限ループを書けるとかっこいい
ぼくがこの1行ループを書きたいと思ったのは、プロセス確認用のコマンドを、手動で何回も「↑」キーを押して同じコマンドを実行していたので、「だっせ~」と思ったからです。
単純な話なんですが、無限ループワンラインコマンドを覚えて、ちゃちゃっと使えるようにすれば、周りのエンジニアにも格好がつけられるかもしれません。