2021-11-17 シェルスクリプトで再帰処理をやってみる bash 昔読んだ技術屋系読み物でSQL、正規表現、再帰処理の3つができればとりあえず技術者合格というような文章を読んだことがあります。最近の作業で特定のトリガーを定期的に読みに行き、タイムアップになったら関数を終了する……というような処理が必要になった事がありました。 とくに考えもなく名前付きパイプでポーリングやっていたのですが、もしやと思い再帰関数をつかったらスマートにできました。 恐らく今後にたような事がありそうなのでメモを残しておきます。 実際のところ 数値を渡すとカウントダウンをするという単純な処理を再帰で書いてみます。シェルスクリプトで引数を渡すという事自体忘れてたのですこし迷いましたが。 #! /bin/bash function testA ( ) { local VAL=$(( $1 - 1)) if [ $VAL -le 0 ] ; then printf "\rDONE\n" else printf "\r%4d" $VAL sleep 1 testA $VAL fi } testA 25