![Bash echo $-1은 hb1을 인쇄합니다. 왜? [복사]](https://linux55.com/image/155938/Bash%20echo%20%24-1%EC%9D%80%20hb1%EC%9D%84%20%EC%9D%B8%EC%87%84%ED%95%A9%EB%8B%88%EB%8B%A4.%20%EC%99%9C%3F%20%5B%EB%B3%B5%EC%82%AC%5D.png)
bash에 -1번째 인수를 에코하도록 요청하면 hb1이 인쇄됩니다.
echo $-1
hb1
왜? 무엇에 액세스하고 있나요?
답변1
첫 번째 인수인 을 인쇄하도록 요청하는 것이 아닙니다 $1
.
당신이 요청한특수 매개변수:
-
(
$-
하이픈.) 호출 시 set 내장 명령을 통해 또는 쉘 자체(예: -i 옵션)에 의해 지정된 현재 옵션 플래그로 확장됩니다.
따라서 귀하의 옵션은 다음과 같습니다.hb
1
그러면 추가한 내용이 인쇄되는 것을 볼 수 있습니다 (그래서 hb1
).
마지막 매개변수를 찾고 있다면(-1 매개변수가 무엇을 의미하는지 확실하지 않음) 다음을 사용할 수 있습니다.쉘 매개변수 확장형태는 다음과 같습니다.
$ set -- one two three
$ echo "${@: -1}"
three