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