비밀번호나 물결표 플러스(~+)를 사용해야 하나요?

비밀번호나 물결표 플러스(~+)를 사용해야 하나요?

둘 다 현재 디렉터리 경로인 동일한 정보를 pwd제공합니다 .~+

그래서 내 질문은 다른 것 대신에 하나를 사용해야 하는가입니다. ~+제 생각에는 모든 시스템이 지원되나요 pwd? 그렇다면 ~+사용하기가 더 눈길을 끌 것입니다.

사용 예는 다음과 같습니다.

var=$($(pwd)/folder/another/script -v)
var=$(~+/folder/another/script -v)

답변1

~+표준어는 아닌 것 같은데,only ~username및 물결표는 별도로 정의됩니다.. 예를 들어 Dash 및 Busybox는 이를 지원하지 않습니다 ~+. 그러나 명령 pwd및 셸 변수는 $PWD표준이므로 "$(pwd)"또는 "$PWD"작동해야 합니다.

대부분의 경우 를 사용하여 현재 디렉터리를 참조할 수 있지만 .전체 경로를 확장해야 하는 경우 일반적으로 "$PWD"변수 대신 명령 대체를 사용합니다. 이를 위해서는 많은 셸에서 새 프로세스를 생성해야 하므로 불필요한 오버헤드가 발생합니다.

현재 디렉터리 경로에 공백 등이 포함되어 있는 경우 확장자를 인용해야 합니다. (또는 $IFS무엇이든 포함하고 전역 문자도 포함됩니다.)

그러나 현재 작업 디렉터리의 심볼릭 링크 를 확인하려면 "$(pwd -P)". 이것이 주어진 것인지 확인하는 것은 아닙니다). 예를 들어:$PWD$(pwd)

$ mkdir /tmp/foo
$ ln -s /tmp/foo /tmp/link
$ cd /tmp/link
$ echo "$PWD"; pwd; pwd -P
/tmp/link
/tmp/link
/tmp/foo

관련 정보