atrm을 사용하여 17:00 이전에 예약된 모든 작업을 삭제하세요. [닫기]

atrm을 사용하여 17:00 이전에 예약된 모든 작업을 삭제하세요. [닫기]

사용자 이름을 위치 인수로 사용하여 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

  1. date 명령 주위에 잘못된 따옴표를 사용하고 있습니다. ‘...’백틱( `...`) 대신에 "말린" 작은따옴표( )를 사용합니다 $(...).
  2. =값을 할당할 때 변수 주위에 공백이 허용되지 않습니다.
  3. 그 뒤에는 공백이 있을 수 없습니다 +.

사용:currentTime=$( date +%k%M )

그리고 함수 이름정의( check_time_tu_run)는
함수 이름이 아닙니다.부르다( check_time_to_run)

다른 오류가 있습니다. 코드를 붙여넣으세요.https://www.shellcheck.net더 많은 도움을 받으려면

관련 정보