캐릭터를 세게 때려보세요! 특수역사사령부

캐릭터를 세게 때려보세요! 특수역사사령부

bash 문자를 어떻게 바꾸나요? =? 와 같은 기타 직접 단일 키 문자에 대한 특수 기록 명령

답변1

이 작업은 다음을 사용하여 수행할 수 있습니다.histchars변수:

기록 확장, 빠른 교체, 토큰화를 제어하기 위한 최대 3자(참조:역사적 상호작용). 첫 번째 캐릭터는 역사적 확장문자, 즉 역사적 확장의 시작을 나타내는 문자로 보통 " !". 두 번째 문자는 줄의 첫 번째 문자로 처리될 때 "빠른 대체"를 나타내는 문자이며 일반적으로 " ^"입니다. 선택적 세 번째 문자는 단어의 첫 번째 문자로 발견될 때 줄의 나머지 부분이 주석(보통 " #")임을 나타내는 문자입니다. 과거 주석 문자로 인해 줄에 남아 있는 단어의 과거 대체 항목을 건너뜁니다. 쉘 파서가 반드시 줄의 나머지 부분을 주석으로 처리하도록 하는 것은 아닙니다.

그래서:

$ echo foo
foo
$ histchars='=^'
$ =echo
echo foo
foo
$ 

그러나 코드에서 기록 확장 문자가 가정되는 경우가 있습니다 !(주로 와일드카드와 같은 예외를 설정하는 데 사용됨). 이를 설정하면 =변수 설정과 같은 많은 작업이 중단됩니다.

$ a=e
aecho foo
bash: aecho: command not found
$ a'='e
bash: a=e: command not found
$ a\=e
bash: a=e: command not found
$ printf -v a e
$ echo $a
e

관련 정보