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