배경
저는 연구 기관에서 일하고 있으며 batch
오랫동안 이 명령을 사용하여 작업 대기열을 컴퓨터에 제출해 왔습니다. 그러나 최근 업데이트로 인해 batch
이 명령이 POSIX 규격으로 변경되어 더 이상 입력 파일이 필요하지 않게 되었습니다. 따라서 at>
이전 대기열 입력 파일을 재사용하고 필요할 때 더 작은 변경을 수행하는 대신 프롬프트에서 각 명령을 수동으로 입력 해야 합니다. 이것은 꽤 시간이 많이 걸리는 일이고 batch
어차피 그 일을 처리하는 것이 얼마나 끔찍한 일인지 생각하면, 직접 일을 시작하는 것보다 시간 낭비에 가깝습니다.
질문
내가 찾을 수 있는 유일한 대체 대기열은 비용이 많이 들거나 작동하지 않았습니다. 나는 주어진 작업을 시간순으로 실행하는 대기열을 찾고 있습니다. 우선순위 대기열이나 그와 유사한 것은 없습니다. 이제 어떤 대기열이 batch
다르게 작동합니까?
답변1
expect
( 및 pexpect
)는 "대화형" 입력이 필요한 프로그램과 자동으로 상호 작용하도록 설계되었습니다. expect
자동으로 프로그램 시작, 프롬프트 대기, 응답 보내기, 다른 프롬프트 대기 등을 허용합니다.
batch
다음은 예약할 작업을 시작하고 생성하는 Expect 스크립트의 간단한 예입니다 . 시작하고 batch
, 프롬프트를 기다리고, 작업을 생성하고, 프롬프트를 기다리고, control-D( )를 보내고 , 작업 생성을 확인하는 응답을 \004
기다립니다 (예: ). 그런 다음 완료될 때까지 1초 정도 기다린 후 종료됩니다.batch
job 271 at Sat Oct 25 14:31:00 2014
batch
#!/usr/bin/expect --
spawn batch
expect "at>"
send "echo Hello from batch\r"
expect "at>"
send "\004"
expect "job"
sleep 1
expect
많은 고급 기능을 가지고 있습니다. 프로시저를 생성하고 변수를 조작할 수 있습니다. 자세한 내용은 다음을 참조하세요.expect
홈페이지그리고expect
자주하는 질문. 이것expect
위키피디아 페이지매우 유익합니다.
아직 시도하지는 않았지만 expect
표준 입력에서 읽고 작업을 대기열에 추가하는 스크립트를 만드는 것이 가능할 수도 있습니다. 또는 입력 시 stdin에서 읽고 출력 시 Expect 스크립트를 작성하는 shell/sed/awk/python 스크립트를 생성할 수 있습니다.