다른 스크립트에서 $PWD 호출

다른 스크립트에서 $PWD 호출

bash 스크립트에서 $PWD를 작동시키는 데 문제가 있습니다...

같은 디렉토리에 두 개의 스크립트가 있습니다.

~/outer.sh, ~/inner.sh. 나는 outer.sh이것을 다음과 같이 부르는 데 익숙합니다.inner.sh

(outer.sh의 내용은 아래와 같습니다)

#!/bin/bash

$PWD/inner.sh

그러나 이것은 작동하지 않는 것 같습니다. 추가 조사에 따르면 $PWD를 여기에서 사용하고 있으므로 액세스할 수 없는 것으로 보이며(아무 것도 나타나지 않음 printf $PWD >> logfile.txt) 스크립트에서 스크립트를 호출하는 것과 관련이 있는 것으로 의심됩니다... 여기서 무슨 일이 일어나고 있는지 명확히 할 수 있는 사람이 있습니까?

답변1

$PWD스크립트가 포함된 디렉터리가 아니라 현재 디렉터리입니다. inner.sh현재 디렉터리에 있을 이유가 없습니다 .

스크립트 경로는 에 저장됩니다 $0. 해당 디렉토리 부분을 추출하여 스크립트가 포함된 디렉토리를 찾을 수 있습니다.

script_directory=$(dirname -- "$0")
"$script_directory/inner.sh"

관련 정보