공백 문자로 시작하는 모든 명령은 이제 bash 기록( HISTCONTROL=ignoreboth
in ~/.bashrc
)에서 무시됩니다.
필드에 첫 번째 문자를 입력하라는 메시지로 스페이스바를 누를 때 더 나은 시각적 신호를 갖고 싶습니다.
그렇다면 bash 프롬프트에 이와 같은 것을 추가하는 방법이 있습니까?
예를 들어, 스페이스바를 누르는 것을 감지하면 프롬프트의 일부에 색상을 지정할 수 있습니다.입력 필드의 첫 번째 문자로(입력 필드의 다른 공백 문자에 반응하는 것은 분명히 어리석은 일이기 때문입니다.)
답변1
따라서 이것은 약간의 해킹인 것은 인정하지만 이것이 최종 목표를 달성할 것이라고 생각합니다(원하는 방식이 아니더라도). 귀하의 (또는 로그인할 때 얻을 수 있는 다른 곳) .bashrc
에 다음과 유사한 내용을 추가하십시오 .
check_space() {
if [[ "$READLINE_LINE" == " " ]]; then
echo "This command will not be recorded in .bash_history!!"
fi
READLINE_LINE="$READLINE_LINE "
READLINE_POINT=$(($READLINE_POINT+1))
}
bind -x '" ": check_space'
스페이스바를 누를 때마다 이 check_space
함수를 호출하여 경고를 인쇄해야 하는지 확인합니다.
도움을 주셔서 감사합니다 제프여기 드미트리에게 도움을 받은 사람여기
Dlsso 편집:
공백 대신 임의의 문자를 사용하려면:
check_char() {
char=$1;
if [[ "$READLINE_LINE" == "$char" ]]; then
echo "This command will not be recorded in .bash_history!!"
fi
READLINE_LINE="$READLINE_LINE$char"
READLINE_POINT=$(($READLINE_POINT+${#char}))
}
for char in {a..z}; do
bind -x '"$char": check_char $char'
done