사용자 이름을 위치 인수로 사용하여 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더 많은 도움을 받으려면