Bash echo $-1은 hb1을 인쇄합니다. 왜? [복사]

Bash echo $-1은 hb1을 인쇄합니다. 왜? [복사]

bash에 -1번째 인수를 에코하도록 요청하면 hb1이 인쇄됩니다.

echo $-1
hb1

왜? 무엇에 액세스하고 있나요?

답변1

첫 번째 인수인 을 인쇄하도록 요청하는 것이 아닙니다 $1.

당신이 요청한특수 매개변수:

-

( $-하이픈.) 호출 시 set 내장 명령을 통해 또는 쉘 자체(예: -i 옵션)에 의해 지정된 현재 옵션 플래그로 확장됩니다.

따라서 귀하의 옵션은 다음과 같습니다.hb

1그러면 추가한 내용이 인쇄되는 것을 볼 수 있습니다 (그래서 hb1).


마지막 매개변수를 찾고 있다면(-1 매개변수가 무엇을 의미하는지 확실하지 않음) 다음을 사용할 수 있습니다.쉘 매개변수 확장형태는 다음과 같습니다.

$ set -- one two three
$ echo "${@: -1}"
three

관련 정보