[bash tips] bashで特定のコマンド群を周期実行したいとき

カテゴリ: ShellScript

bashで単発で特定のコマンド群を実行したいときは、";"で各コマンドをつなぐことが多いですが、数が多い場合はbash関数の機能を使った方が見やすい。

処理を関数の形でまとめる

function func01() {
    echo "=========================================="
    echo 'show collections;' | mongo my_mongodb --quiet

    echo "------------------------------------------"
    mongo my_mongodb --quiet --eval 'db.collection1.count();'
}
export -f func01

func01

関数定義を確認する

作成したbash関数を確認したい場合はdeclareコマンドを使用します

declare -f func01

処理を一定周期で実行する

作成したbash関数を一定周期で実行したい場合は、while文を書くよりもlinuxのwatchコマンドを使用するのが手軽です。

以下のコマンドでは、作成したfunc01のbash関数を10秒周期で実行しています。

watch --interval 10 bash -c func01
こちらもおススメ

コメントを残す

メールアドレスが公開されることはありません。