
최근에 나는 "!"를 많이 포함하는 에코를 발견했습니다. 결과적으로 이상한 일이 발생합니다. 예를 들면 echo !!
다음과 같습니다.
echo rm -r * 1000
rm -r * 1000
( rm -r *
입력하기 전에 실행한 마지막 명령이었습니다). 왜 이런 일이 발생하며 이를 비활성화하는 방법이 있습니까?
답변1
당신은 만났습니다 shell expansion
- 쉘은 당신의 명령을 구문 분석하고 특수 와일드 카드를 다른 정보로 대체합니다. echo '!!'
쉘 확장 및 인용이 무엇을 할 수 있는지 이해하려면 (작은따옴표)를 사용해 보십시오 .
man
에 대한 페이지 에서 쉘 확장에 대한 자세한 내용을 읽을 수 있습니다 bash
. 다음에 대한 섹션을 참고하세요.역사 확장, 다음 과 event designators
같은 내용을 논의합니다.!!
확장, 다른 형태의 쉘 확장에 대해 설명합니다. 섹션인용bash의 인용 메커니즘의 동작과 작은따옴표와 큰따옴표 문자열을 평가하는 방법의 차이점을 설명합니다.