
ユーザー名を位置パラメータとして、17:00前にスケジュールされたすべてのジョブを削除するシェルスクリプトが必要です。これが私が試したことです
#!/bin/bash
currentTime = ‘date + %k%M’
check_time_tu_run()
{
tempTime=$1
if
[ $tempTime -gt 000 -a $tempTime -lt 1700];
then
for i in `atq | awk '{print $1}'`;do atrm $i;done
else
echo “Action is not in the period of time”
fi
}
check_time_to_run $currentTime
答え1
- date コマンドの引用符の使い方が間違っています。
‘...’
バックティック ( ) の代わりに「波型」の一重引用符 ( )を使用しています`...`
が、$(...)
バックティックの代わりに を使用してください。 =
変数の割り当ての前後にスペースを入れることはできません。+
の後にスペースを入れないでください。
使用:currentTime=$( date +%k%M )
また、関数の名前は定義する(check_time_tu_run
)は
関数名ではありません電話(check_time_to_run
)
他にもエラーがあります: コードを貼り付けてくださいhttps://www.shellcheck.netさらにサポートが必要な場合はお問い合わせください。