본문 바로가기

OS

bash shell의 !(Exclamation Mark) 과 숫자를 이용해서 명령시 값이 이상하게 나올 때

최근에 SUSE Linux에서 bash로 작업중에 겪은 일이다.

콘솔에 !2를 입력했는데, 뜬금없이 명령어가 실행되었다.
게다가 echo에다 찍어도 그렇게 나오는 것이다.

echo !2

처음에는 내가 실수로 alias를 넣었나.. 아니면 profile에 변수로 지정했나 싶었다.
alias  | grep !2

뭐가 나오긴했는데 내가 설정한 것은 아니었다.
그리고 /etc, ~ 등지에 존재하는 .bashrc와 *profile 등등..
아무리봐도 내가 지정한 것이 존재하지 않았다.

history 명령으로 기존 명령들을 봐도 그런적이 없었다.
그런데... 최상단에 그러니까 2번라인에 !2입력 시 나오는 명령어가 있었다.
아하… history에 기록된 index 2번의 내용을 불러오는게 !2 였구나..

근데 이런다고 끝날게 아니라, !표를 어쩌써야하나 찾아보니,
! Exclamation Mark를 비활성하는 방법이 있었는데 그거보단 그냥 평소 사용시 계속 인지하고 있으려고 일반 문자로 인식하도록 처리하는 방법을 찾았다.

그건 바로 기호앞에 역슬래시(\)를 넣는것이다. 언어에서 쓰는 Escape 문자 사용시에 하는 것처럼..
이제 잘된다.
편-안