다음 명령을 사용하여 스크립트를 실행하려고 합니다.
nohup . test.sh
그리고
nohup . ./test.sh
그러나 내가 얻는 것은 nohup: failed to run command `.': Permission denied
매번입니다.
제가 정말로 원하는 것은 스크립트에서 별칭을 지정한 명령을 호출할 수 있는 것입니다. 하지만 " . test.sh
" 또는 " . ./test.sh
" 에서만 작동하고 " ./test.sh
" 또는 " sh ./test.sh
" 에서는 작동하지 않습니다. 왜냐하면 "command not Found" 메시지가 표시되기 때문입니다. 하지만 "nohup"을 사용하여 실행할 수 있기를 원합니다.
답변1
nohup
실행 파일을 실행합니다. 외부 명령, 즉 실행 파일을 전달해야 합니다. nohup
별칭, 함수 또는 내장 함수와 같은 셸 구성은 호출 할 수 없습니다 . nohup
새 프로세스를 실행하면 기존 셸 프로세스 내부에서 무언가가 실행되지 않으므로( nohup
별도의 프로세스 자체이므로) nohup . …
아무런 의미가 없습니다.
nohup ./test.sh
nohup을 사용하여 쉘 스크립트를 실행하는 올바른 방법입니다. 스크립트가 shebang 줄로 올바르게 시작하는지( #!/bin/sh
), 파일이 실행 가능한지( chmod +x ./test.sh
) 확인하세요.