ファイルが存在するかどうかをテストするシェルスクリプトを作成します。その場合は、削除されたファイルのタイムスタンプ形式ログをYYYYMMDD-HH:MM:SS日付コマンドとして表示し、ファイルを削除してからatコマンドを使用して、5分後に実行されるように独自のスケジュールを調整します。
if (( test -f /tmp/norun ))
then
echo " removing /tmp/norun" 'data +%Y%m%d-%T'>>s30928290.log
#rm /tmp/norun
#timesh='date --date="1 minute"
at -f /home/s300928290/s300928290.at now + 5 miniutes
else
echo "hello world" 'data +%Y%m%d-%T'>>s30928290.log
fi
#echo "none";
このスクリプトを実行できません。理由を知っている人はいますか?
答え1
スクリプトを次のように修正しました。
if [[ -f /tmp/norun ]]; then
echo "Removing /tmp/norun $(date '+%Y%m%d-%T')" >>s30928290.log
rm -- /tmp/norun
timesh=$(date --date='1 minute') # This variable is not being used
at -f /home/s300928290/s300928290.at now + 5 minutes
else
echo "Hello, world $(date '+%Y%m%d-%T')" >>s30928290.log
fi
Kusalanandaが指摘したように、(( ... ))
ファイルテストには無効なbash算術式なので[[ ... ]]
。
data
あなたがそれを望んでいると信じるとき、あなたはそれを持っていますdate
。これはコマンド置換()にも適用する必要があります$( ... )
。
また、命令のスペルがminutes
間違っています。at