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"