쉘 스크립트에서 $^@(달러 캐럿)은 무엇을 의미합니까?

쉘 스크립트에서 $^@(달러 캐럿)은 무엇을 의미합니까?

매개변수 확장에 대한 참조를 찾았지만 그것이 무엇 $^@인지 설명하는 것은 없습니다. 문맥상으로는 예를 ~/$^@들어 로 확장하기 위한 것이라고 생각 ~/$1 ~/$2 ...하지만 확실하지 않으며 확인도 찾을 수 없습니다. 설명 외에도 이 확장 프로그램의 이름과 이에 대한 문서 링크(가능한 경우)를 알고 싶습니다. 감사해요!

편집: 이것이 zsh에만 해당될 수 있다고 들었습니다. 누구든지 더 많은 정보를 갖고 있다면 알려주시기 바랍니다.

답변1

zsh셸 에서 배열(예: )은 foo${^array}bar문자열 , 및 : 대신 , 및 (중괄호 확장과 마찬가지로 ) 로 확장 됩니다 .array(a b c)fooabarfoobbarfoocbarfooabcbar

$ array=(a b c)
$ print -rC1 foo${^array}bar
fooabar
foobbar
foocbar
$ print -rC1 foo${array}bar
fooa
b
cbar

인용한 코드에서 이는 ~/위치 인수 목록의 각 요소에 (사용자 홈 디렉터리의 경로 이름)을 추가하는 데 사용됩니다.

$ set -- a b c "bumble bee"
$ print -rC1 ~/$^@
/home/myself/a
/home/myself/b
/home/myself/c
/home/myself/bumble bee

~/$^@동일합니다 ~/${^@}. 또는 위치 인수 목록(일반적으로 현재 스크립트나 셸 함수에 대한 인수 또는 위에 표시된 $@내장 유틸리티를 사용하여 ${@}설정된 문자열 )입니다.set

zshall설명서에서 검색해 보세요 RC_EXPAND_PARAM. 확장 기능은 원래 에서 나올 수 있습니다.rc껍질.

관련 정보