동일한 폴더에 있는 다른 스크립트를 실행 가능하게 만드는 스크립트를 만드는 방법은 무엇입니까?

동일한 폴더에 있는 다른 스크립트를 실행 가능하게 만드는 스크립트를 만드는 방법은 무엇입니까?

동일한 폴더에 있는 다른 스크립트를 실행 가능하게 만드는 스크립트를 만드는 방법은 무엇입니까? 경로는 동일한 디렉토리에 있으므로 걱정하고 싶지 않습니다. 따라서 다음과 같아야 합니다(D3GO 스크립트를 실행 가능하게 만들려고 합니다).

#!/bin/bash    

chmod +x "$pwd"/D3GO

저는 스크립트를 처음 접하는 사람이므로 웃지 마세요 :D 감사합니다!

답변1

bash스크립트를 실행하면 pwd. 예를 들어:

#!/bin/bash

pwd

에서 이를 실행하면 스크립트가 어디에 위치하든 상관없이 /whatever/path이 표시됩니다 ./whatever/path

스크립트를 실행 중인 디렉터리의 파일에 대해 작업하려면 pwd다음과 같이 생략할 수 있습니다.

chmod +x D3GO

이는 스크립트가 실제로 어디에 배치되어 있든 관계없이 chmod +x /whatever/path/D3GO에서 실행하는 것처럼 해석됩니다 ./whatever/path

스크립트가 위치한 디렉터리에서 작업하려면 $BASH_SOURCE변수를 사용하면 됩니다. 이는 배열이며 첫 번째 요소는 스크립트 자체에 대한 경로입니다(예: /script/directory/myscript.sh). 이것을 dirname명령과 결합하여 디렉토리만 가져올 수 있습니다.

chmod +x `dirname ${BASH_SOURCE[0]}`/D3GO

D3GO그러면 스크립트가 호출된 위치 대신 이 스크립트가 배치된 디렉터리에서 검색됩니다 . (제 실수를 지적해주신 @muru님께 감사드립니다.)

답변2

당신은 매우 가까웠어요!

#!/bin/bash    

chmod +x D3GO

관련 정보