일반적으로 자동화 된 프로세스 (예 : cron, Jenkins)로 실행되는 스크립트의 동작을 조사하고 있습니다. 스크립트는 대화식으로 실행될 때 다르게 동작하는 (사용자 입력을 찾는) 명령을 (최종적으로) 호출 할 수 있습니다. 예를 들어, patch
리버스 패치로 무엇을해야하는지, svn
암호를 요구할 것이지만, 비 대화식으로 실행될 때 어떤 일이 발생하는지 확인해야합니다.
patch
비 대화식이라고 설득 하는 것은 매우 쉽습니다. stdout
tty가 아닌 것으로 리디렉션해야합니다 .
$ </dev/null > >(cat) /path/to/myscript --args
그러나 svn
제어 터미널이 있으면 연결합니다. 전달할 스크립트를 편집하는 --non-interactive
것은 실제로 여러 수준에서 나오므로 모든 호출을 찾은 것이 확실하지 않으므로 실제로는 옵션이 아닙니다.
제어 터미널없이 /dev/tty
존재하지 않는 스크립트 / 명령을 비 대화식으로 호출하는 방법이 있습니까? stdout / stderr를 여전히 내 터미널로 이동하고 싶습니다.
( 대화식이 아닌 쉘에서 Run script 라는 질문을 찾았 지만 이에 대한 대답은 cron과 사용자 환경의 차이점에 대해 설명합니다. 비 대화식을 제외한 모든 차이점을 이미 제거했습니다.)