atrm을 사용하여 17:00 이전에 예약된 모든 작업을 제거합니다.

atrm을 사용하여 17:00 이전에 예약된 모든 작업을 제거합니다.

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

  1. date 명령에 잘못된 인용을 사용하고 있습니다. ‘...’백틱( ) 대신 "둥근" 작은따옴표( )를 사용하고 있지만 백틱 대신 `...`사용합니다 .$(...)
  2. =변수 할당을 위해 주위에 공백이 허용되지 않습니다.
  3. 뒤에는 공백 +이 있어서는 안 됩니다.

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

또한 함수의 이름은정의하다( check_time_tu_run)는
사용자가 사용하는 함수의 이름이 아닙니다.부르다( check_time_to_run)

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

관련 정보