タグ

shellscriptに関するkarukanのブックマーク (3)

  • 使いやすいシェルスクリプトを書く

    できればシェルスクリプトなんて書きたくないんだけど,まだまだ書く機会は多い.シェル芸やワンライナーのような凝ったことではなく,他のひとが使いやすいシェルスクリプトを書くために自分が実践していることをまとめておく. ヘルプメッセージ 書いてるシェルスクリプトが使い捨てではなく何度も使うものである場合は,体を書き始める前に,そのスクリプトの使い方を表示するusage関数を書いてしまう. これを書いておくと,後々チームへ共有がしやすくなる.とりあえずusage見てくださいと言える.また,あらかじめ書くことで,単なるシェルスクリプトであっても自分の中で動作を整理してから書き始めることができる.関数として書くのは,usageを表示してあげるとよい場面がいくつかあり,使い回すことができるため. 以下のように書く. function usage { cat <<EOF $(basename ${0})

  • 多重起動を防ぐシェルスクリプト - zenpouの日記

    cron等でシェルを複数回実行した時、多重起動するとまずいので、それを回避するスクリプト。 業務上必要だったので作ってみた。 #!/bin/sh SCRIPT_PID="/home/takase/work/run_script.pid" if [ -f $SCRIPT_PID ]; then PID=`cat $SCRIPT_PID ` if (ps -e | awk '{print $1}' | grep $PID >/dev/null); then exit fi fi echo $$ > $SCRIPT_PID (この辺にバッチの処理) rm $SCRIPT_PIDpidでプロセスの有無を確認しているので起動中は2重に実行されないし、 何か理由があって落ちてた場合は再実行される。 後はcrontabにこのシェルを設定してやればOK

    多重起動を防ぐシェルスクリプト - zenpouの日記
  • if 文と test コマンド | UNIX & Linux コマンド・シェルスクリプト リファレンス

    if 文と test コマンド if 文とは? if 文とは、与えられた条件式が真のときのみ処理を行い、それ以外の場合は処理をスキップする、などといった場合に使用される条件分岐処理である。 条件式には一般的に test コマンドを用いるが、ls コマンドや grep コマンド等の他のコマンドを用いても構わない。 if 文は条件式に指定されたコマンドの終了ステータスを判定し分岐を行う。終了ステータスが「0」の場合は真、その他の場合は偽となる。 if 文 タイプ 1

    if 文と test コマンド | UNIX & Linux コマンド・シェルスクリプト リファレンス
  • 1