现在,每个以空格字符开头的命令都会被 bash 历史记录忽略(HISTCONTROL=ignoreboth
在 中~/.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