![atrm을 사용하여 17:00 이전에 예약된 모든 작업을 삭제하세요. [닫기]](https://linux55.com/image/134259/atrm%EC%9D%84%20%EC%82%AC%EC%9A%A9%ED%95%98%EC%97%AC%2017%3A00%20%EC%9D%B4%EC%A0%84%EC%97%90%20%EC%98%88%EC%95%BD%EB%90%9C%20%EB%AA%A8%EB%93%A0%20%EC%9E%91%EC%97%85%EC%9D%84%20%EC%82%AD%EC%A0%9C%ED%95%98%EC%84%B8%EC%9A%94.%20%5B%EB%8B%AB%EA%B8%B0%5D.png)
사용자 이름을 위치 인수로 사용하여 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더 많은 도움을 받으려면