
사용자 이름을 위치 매개변수로 사용하여 17시 이전에 예약된 모든 작업을 제거하는 쉘 스크립트가 필요합니다. 이것이 제가 시도한 것입니다.
#!/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더 많은 도움을 원하시면.