"at"를 사용하여 매개변수가 있는 스크립트 예약

"at"를 사용하여 매개변수가 있는 스크립트 예약

특정 시간에 실행하고 싶은 bash 스크립트가 있습니다. 일반적으로 즉시 실행하려면 다음과 같이 작성합니다.

./my_script.sh 1 1 n 8 3 keywords here

"를 사용하여 동일한 명령을 실행하려고 합니다.존재하다" 명령을 실행했지만 작동하지 않습니다. 예를 들어 다음과 같이 실행하면:

at 2230 -f my_script.sh 1 1 n 8 3 keywords here

다음 오류가 발생합니다.

syntax error. Last token seen: 1
Garbled time

주어진 시간에 매개변수를 사용하여 스크립트를 실행하는 방법은 무엇입니까?

답변1

-f 옵션은 필요하지 않습니다. 다음 중 하나를 시도해 보십시오.

at 2230 my_script.sh 1 1 n 8 3 keywords here

또는

echo 'my_script.sh 1 1 n 8 3 keywords here' | at 2230

at -f myFile전체 파일을 작업 파일에 즉시 복사합니다. 매개변수를 스크립트에 전달하는 메커니즘이 없습니다.

내가 보여준 두 가지 대안은 단순히 명령 자체를 작업 파일에 복사하는 것입니다. 그런 다음 2230에 script-plus-args가 호출됩니다.

at-job 파일에는 PATH, cwd 및 기타 대부분의 항목을 사용할 수 있도록 먼저 환경을 다시 생성하는 스크립트가 포함되어 있습니다.

처음에 온라인 쉘과 다른 쉘을 호출할 수 있으므로 스크립트에 shebang이 있는 것이 좋습니다.

1030 이전에 스크립트를 변경하거나 삭제하는 것은 아마도 현명하지 못할 것입니다(비록 작업 스크립트가 실행되기 전에 오류를 수정하는 데 유용한 도구라고 생각하지만).

관련 정보