ksh スクリプトの小技集


006. 有人実行か無人実行かの判断

    .kshrc や .profile などで、端末からユーザーが実行する時と
    crontab など無人状態で実行される時とで動作を変えたいということがあります。

    こんな時、どのように対処すれば良いでしょう?

    その1つの方法に、tty コマンドの返値で分岐する というものがあります。
    tty コマンドは、crontab や、init から getty を介さずに起動された場合、
    エラーコードを返します。
    そのため、crontab からだと標準入力が存在しなくて正しく動作しない...
    などの状態を事前に回避するように記述するための分岐を書くことができます。

       #!/usr/bin/ksh
       tty 2> /dev/null
       if (( $? ))
       then
         # crontab など無人状態で期待する動作の記述
       else
         # 端末からの実行を期待する動作の記述
       fi

    くれぐれも分岐のどちらのケースについても十分にテストしましょうね。
  

戻る
ちほ Last Updated: 12/20/2006
WebMaster: Satoshi Yamashina ChihioIzu@gmail.com