마지막 명령 행 인수를 얻기 위해 $ {! #}은 bash에서 어떻게 작동합니까?


19

고급 Bash 스크립팅 안내서에서 마지막 명령 줄 인수를 가져옵니다.

또는 : lastarg=${!#} 이것은이다 간접 참조 받는 $#변수입니다.
참고 lastarg=${!$#}작동하지 않습니다.


4
옆으로, ABS는 기준으로 상당히 눈살을 찌푸립니다. irc.freenode.org # bash 채널에서 factoid 의 역사는 wooledge.org/~greybot/meta/abs 를 참조하십시오 . 배시-해커 위키Wooledge BashGuide는 부정확 한 밀도로 악명 아니다. 후자 내에서 간접 참조는 BashFAQ # 6 에 자세히 설명되어 있습니다 . 전자, wiki.bash-hackers.org/syntax/pe#indirection
Charles Duffy

1
그냥 질문 : !$더 간단하고 동일하지 않습니까?
unxnut

답변:


27

그것은 간접 참조입니다. 다음 예제를 보자.

$ var=test
$ test='Hello, world'
$ echo ${!var}
Hello, world

이제 다음 위치 매개 변수를 설정해야합니다.

$ set -- one two three

그리고 $#위치 매개 변수의 총 수를 나타냅니다.

$ echo $#
3

이것은 ${!#}내가 말하는 것처럼 호출 할 때 명명 된 매개 변수의 값을 알려줍니다 3.

$ echo ${!#}
three
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.