
Мне нужен скрипт оболочки, который удаляет все запланированные до 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для получения дополнительной помощи.