Bye Bye Moore

PoCソルジャーな零細事業主が作業メモを残すブログ

シェルスクリプトで再帰処理をやってみる

昔読んだ技術屋系読み物で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