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