특정 명령 행에서 히스토리 확장을 사용하지 않으려면 다음 space
의 세 번째 문자로 사용할 수 있습니다 $histchars
.
histchars='!^ '
그런 다음 선행 공백으로 명령을 입력하면 히스토리 확장이 수행되지 않습니다.
bash-4.3$ echo "#!/bin/bash"
bash: !/bin/bash: event not found
bash-4.3$ echo "#!/bin/bash"
#!/bin/bash
그러나 선행 공백은 $HISTCONTROL
포함 할 때 히스토리에 명령 행을 기록하지 않도록 ignorespace
하는 방법으로 도 사용됩니다 bash
.
두 기능을 모두 원치 않는 경우의 세 번째 문자로 다른 문자를 선택해야합니다 $histchars
. 명령 해석 방식에 영향을 미치지 않는 것을 원합니다. 몇 가지 옵션 :
- 백 슬래시 사용 (
\
) : \echo foo
작동하지만 별명 또는 키워드를 사용하지 않는 부작용이 있습니다.
- 탭 : 첫 번째 위치에 삽입하려면을 눌러야 Ctrl+VTab합니다.
당신이 두 개의 키를 입력 괜찮다면, 당신은 일반적으로 첫 번째 위치에 표시 (하지 않는 문자를 선택할 수 있습니다 %
, @
, ?
, 자신의 선택)과 그것을 위해 빈 별칭을을 :
histchars='!^%'
alias %=
그런 다음 해당 문자, 공백 및 명령을 입력하십시오.
bash-4.3$ % echo !!
!!
(당신이 역사를 대체 그래도 비활성화 된 명령을 기록 할 수 없습니다 할 수 없습니다. 또한 기본 3 문자주의 $histchars
입니다 #
당신이 그것을 변경하는 경우. 그래서 역사 확장 댓글에서 수행되지 않으며, 당신은에 설명을 입력 프롬프트에서! 시퀀스가 확장 될 수 있다는 사실을 알고 있어야합니다.