nohup: "." 명령을 실행할 수 없습니다: 권한이 거부되었습니다.

nohup: "." 명령을 실행할 수 없습니다: 권한이 거부되었습니다.

다음 명령을 사용하여 스크립트를 실행하려고 합니다.

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.shnohup을 사용하여 쉘 스크립트를 실행하는 올바른 방법입니다. 스크립트가 shebang 줄로 올바르게 시작하는지( #!/bin/sh), 파일이 실행 가능한지( chmod +x ./test.sh) 확인하세요.

관련 정보