2016-11-21 6 views
2

.sh 확장자없이 bash에서 파일을 실행하고 싶습니다.쉘에서 .sh 확장자없이 파일을 실행하는 방법

예 : 내가 파일 내가 (! 첫 번째 줄에 나는이 추가로 #/빈/bash는) 직접 실행할 수 있습니다 "abc.sh"가 있지만 파일 이름이 바로 "ABC"

+4

그냥'chmod + x abc'입니다.확장 기능은 리눅스에서 의미가 없습니다 – AhmadWabbi

+0

PATH (실행 파일 프로그램을 찾을 곳을 알려주는 변수)에 없으면'./abc' (@WasteD 언급과 같이)로 시작해야합니다. –

답변

3

리눅스에서는 ./filename도 스크립트를 실행합니다! 그리고 당신은 실행할 필요가 허락 :

chmod 755 filename

는하지만 여전히 "오두막"를 필요

#!/bin/bash 

편집 : 당신이 한 경우에 나는이

있어 here에서

스크립트 디렉토리를 PATH에 두지 마십시오. 합니다 ( 현재 디렉토리)이 같은 스크립트를 활성화 할 수 있습니다, 어느 PATH에없는 :

스크립트가 명시 적으로 주어진 쉘에 의해 실행될 수 ./script_name.sh

하지만 일반적으로

rbash의 script_name.sh

SH : 우리는 스크립트가 다른 쉘 또는 인쇄를 작동하는지 확인으로 특별한 행동, 같은 를 얻으려면 우리는 디버깅을 위해 를 추적 이렇게 파일이 이미 abc.sh 같은 실행 파일의 경우, 당신이 할 필요가

mv abc.sh abc 

(디렉터리 경우에 가정이다,

+0

이것이 해결되었습니다 나에게 문제는 있지만 ./filename은 왜 작동합니까? 나는 그것을 설명하기 위해 구글에서 아무것도 찾을 수 없습니다. 어떻게 디렉토리를 변경하지 않고 디렉토리에서 스크립트를 실행하겠습니까? 예를 들어 홈 디렉토리에 있고 filename의/some/nested/디렉토리에있는 스크립트를 실행하려면 어떻게해야할까요? –

+0

@QuestionMcquestioner 내 대답을 편집했습니다. 바라기를 당신은 지금 이해한다! – WasteD

+0

그래, 지금은 조금 더 의미가 있습니다; 감사합니다. –

0

되고 싶어 파일에 대한 사용 권한은 무엇입니까? ./abc.sh과 같은 작업을 실행 가능하게하려면 실행 권한이 있어야합니다.

당신은 항상 실행 기능의 측면에서 아무것도 의미하지 않는다 리눅스에서 bash abc.sh

Linux permissions overview

파일 이름을 수행 할 수 있습니다, 당신은 파일 myfile.something.something를 호출 할 수 있습니다 그것은 여전히 ​​실행 할 수 있습니다. abc으로 이름을 지정할 수 있지만 사용자, 그룹, 기타에 대해 EXECUTABLE 권한이 있어야합니다.

chmod +x <filename>을 추가 할 수 있지만 위에 링크를 통해 더 잘 이해할 수 있습니다.

+0

755 개의 사용 권한이 있지만 그냥 abc로 사용할 수 있습니까? –

+0

누가 파일을 소유하고 누가 파일을 사용하려고합니까? 이 모든 것들은 파일 이름이 실행되는 동안 실행에 중요합니다. – ioneyed

+1

'abc'로 실행하려면 몇 가지 옵션이 있습니다 : (1)'abc.sh '대신'abc'로 이름 짓기, (2)'abc'에서' abc.sh' (3)'abc.sh'를 참조하는'abc'라는 별칭을 제공하십시오 (4)'abc.sh'를 실행하는 쉘 스크립트'abc'를 생성하십시오 ..... – user1934428

0

을 script_name.sh -x

bash는 script_name.sh 파일 수명)

Linux 또는 Unix 셸에서 파일 확장자는 실행 여부에 영향을주지 않습니다.

관련 문제