programing

$(명령어)라는 명령어를 달러 기호와 괄호 안에 넣는 것은 셸에서 무엇을 의미합니까?

topblog 2023. 4. 13. 20:28
반응형

$(명령어)라는 명령어를 달러 기호와 괄호 안에 넣는 것은 셸에서 무엇을 의미합니까?

저는 단지 셸에 있는 다음 코드 줄을 이해하고 싶을 뿐입니다.현재 작업 디렉토리를 가져오는 데 사용됩니다.나는 알고 있다$(variable)name은 변수 이름 내의 값을 반환하지만,$(command)돌아온다고?명령어 실행 후 값이 반환됩니까?그런 경우에는`명령어를 실행합니다.

CWD="$(cd "$(dirname $0)"; pwd)"

다른 버전의 셸에서도 다음 코드 행에서 동일한 출력을 얻을 수 있습니다.

DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"

나는 의 뜻을 이해할 수 없다$(cd..그리고.$(dirname.

이 명령어가 어떻게 실행되는지 아는 사람 있나요?

의 사용방법$맘에 들다${HOME}HOME의 가치를 나타냅니다.$맘에 들다$(echo foo)즉, 괄호 안에 있는 서브셸 내의 모든 것을 실행하고 그 값을 반환하는 것입니다.제 예에서는,foo부터echo쓸 것이다foo표준으로 하다

DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"

이 명령어가 어떻게 실행되는지 아는 사람 있나요?

명령어의 다른 부분을 살펴보겠습니다. BASH_SOURCE는 소스 파일 이름을 포함하는 bash 배열 변수입니다.그렇게"${BASH_SOURCE[0]}"스크립트 파일의 이름을 반환합니다.

dirname는 파일 이름에서 마지막 컴포넌트를 삭제하는 GNU coreutils에 의해 제공되는 유틸리티입니다.따라서 스크립트를 실행하면 다음과 같이 됩니다.bash foo,"$( dirname "${BASH_SOURCE[0]}" )"돌아올 것이다.만약 당신이 말했다.bash ../foo, 그것은 돌아올 것이다...;의 경우bash /some/path/foo그것은 돌아올 것이다/some/path.

마지막으로 명령어 전체가"$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"는 호출되는 스크립트를 포함하는 절대 디렉토리를 가져옵니다.

$(...)명령어를 대체할 수 있습니다. 즉, 명령어 출력으로 명령어를 대체할 수 있으며 네스트할 수 있습니다.

언급URL : https://stackoverflow.com/questions/17984958/what-does-it-mean-in-shell-when-we-put-a-command-inside-dollar-sign-and-parenthe

반응형