空白文字で始まるすべてのコマンドは、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
関数を呼び出して警告を印刷する必要があるかどうかを確認します。
助けてくれてありがとうJefここ ドミトリーの助けを受けた人ここ
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