![Bash에서 !#은 무엇을 의미합니까(느낌표 및 해시 태그/파운드 기호)?](https://linux55.com/image/203116/Bash%EC%97%90%EC%84%9C%20!%23%EC%9D%80%20%EB%AC%B4%EC%97%87%EC%9D%84%20%EC%9D%98%EB%AF%B8%ED%95%A9%EB%8B%88%EA%B9%8C(%EB%8A%90%EB%82%8C%ED%91%9C%20%EB%B0%8F%20%ED%95%B4%EC%8B%9C%20%ED%83%9C%EA%B7%B8%2F%ED%8C%8C%EC%9A%B4%EB%93%9C%20%EA%B8%B0%ED%98%B8)%3F.png)
이 명령이 다음과 같은 출력을 제공하는 이유는 무엇입니까?
$ echo !#
echo echo
echo
$
나는 "!"에 대해 읽었고 그것이 상황에 따라 어떻게 역사를 부정하거나 확장하는지 읽었습니다. #과 연결하면 왜 이렇게 동작하는지 이해가 되지 않습니다.
답변1
실행하면 echo !#
"bash는 현재 !#이 있는 전체 명령줄을 바꿀 수 있습니까? (!# 자체는 포함하지 않음)"라고 말하는 것입니다.
그런 다음 Bash는 대체 결과를 stderr로 인쇄합니다. 이는 여러분이 볼 수 있는 것입니다. 그런 다음 출력의 다음 줄은 echo echo
stdout의 작업 결과입니다.echo echo
echo
자세한 내용은 이벤트 표시기 섹션에 나와 있습니다.배쉬 맨페이지.
!#
명령줄을 반복하기 위한 특별한 이벤트 표시기일 뿐입니다 .
더 명확한 예입니다.
echo "There's two of us!";!#
결과 :
echo "There's two of us!";echo "There's two of us!";
There's two of us!
There's two of us!