ksh スクリプトの小技集


002. crontab への登録方法

    シェルで crontab の登録を行おうとした時、* などがシェルによりカレントディレクトリにあるファイル名に展開されてしまい、正しく登録できない。

    失敗例)

      #!/bin/ksh
      #
      # 現在の crontab をファイルに出力
      #
      crontab -l > /tmp/crontab.tmp

      #
      # 新規登録する crontab をファイルに追加出力
      #
      echo "* * * * * /usr/local/bin/test.ksh 2>&1 > /dev/null" >> /tmp/crontab.tmp

      #
      # crontab を登録
      #
      crontab /tmp/crontab.tmp


    これを克服するために ヒアドキュメント を使用する。
    ヒアドキュメントに書かれた文字についてはシェルは解釈しない。

      #!/bin/ksh
      #
      # 現在の crontab をファイルに出力
      #
      crontab -l > /tmp/crontab.tmp

      #
      # 新規登録する crontab をファイルに追加出力
      #
      cat - >> /tmp/crontab.tmp <&1 > /dev/null
      END

      #
      # crontab を登録
      #
      crontab /tmp/crontab.tmp

  

戻る
ちほ Last Updated: 2/9/2006
WebMaster: Satoshi Yamashina chihioizu@gmail.com