다른 디렉토리에서 스크립트를 실행하는 방법?


51

나는 이것을 시도했다

./home/user/scripts/someScript

하지만 작동하지 않습니다

그러한 파일이나 디렉토리가 없습니다

어떤 아이디어?


2
분명히 그러한 파일이나 디렉토리는 없습니다. 그래서 당신은 잘못된 길을 줘. 이 점은 "실행"을 의미하지 않습니다. 그것은 길의 일부일뿐입니다. 쉘에서 일반적으로 실행할 파일 또는 명령 (실제로 파일 임)을 입력하십시오. :
Pithikos

시작 시간을 없애고 다시 시도하십시오. 또는 ~ / scripts / someScript도 작동합니다. 또한 ''qoutes와 exec 프로그램 ($ man exec)을 염두에 두십시오
j0h

답변:


61

명령의 선행 점은 "현재 디렉토리에 상대적"을 의미합니다. 그것을 제거하면 " someScript디렉토리 의 파일 /home/user/scripts:

/home/user/scripts/someScript

"권한이 거부되었습니다"가 표시되면 다른 사용자의 디렉토리에있는 파일에 액세스 할 수있는 권한이 없거나 파일이 실행 가능하지 않기 때문입니다. 실행 가능하게하려면 다음을 실행하십시오.

chmod +x /home/user/scripts/someScript

35

스크립트가 실행되는 동일한 폴더에있는 리소스에 액세스해야하고 상대 경로로 지정한 경우 스크립트가 중단됩니다.

나는 항상 cd $(dirname $0)스크립트 헤드에 a 를 추가 하여 스크립트를 포함하는 폴더가 루트 폴더가되도록합니다.


6

제거 .

실행 가능한 scrip을 실행 가능하게 만들면 chmod 755 <nameofscript>스크립트 경로 만 입력하면됩니다.

./script사용되는 것을 볼 때 스크립트가 실행중인 디렉토리에 스크립트가 있음을 쉘에 알려줍니다. 전체 경로를 사용하려면을 입력하십시오 sh /home/user/scripts/someScript.


sh /path/to/file와 다릅니다 /path/to/file. sh실행 /bin/sh에 심볼릭 링크됩니다 /bin/dash.
Lekensteyn

인터넷에서 볼 수있는 예제에 대해 명확하게 설명하면 보통 sh ./somescript`sh / path / to / script / scriptitself '로 입력 할 수 있습니다.
Bruno Pereira
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.