이 명령이 다음과 같은 출력을 제공하는 이유는 무엇입니까?
$ 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!