Изменение подсказки bash в зависимости от того, является ли первый символ пробелом

Прямо сейчас каждая команда, начинающаяся с символа пробела, игнорируется историей bash ( HISTCONTROL=ignoreboth в ~/.bashrc ).
Я хотел бы иметь лучший визуальный сигнал, когда я нажимаю пробел в качестве первого символа в поле ввода приглашения.

Так есть способ добавления такой вещи в подсказку bash?
Например, вы будете раскрашивать часть приглашения, когда он замечает, что вы нажимаете пробел в качестве первого символа поля ввода (потому что очевидно, что реагирование на другие символы пробела в поле ввода было бы глупо).

One Solution collect form web for “Изменение подсказки bash в зависимости от того, является ли первый символ пробелом”

Итак, по общему признанию, это немного хакерский, но я думаю, что он достигнет вашей конечной цели (даже если это не так, как вы хотели). В вашем .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 чтобы увидеть, должно ли оно выводить предупреждение или нет.

Благодаря помощи Джеффа, который получил помощь от Дмитрия здесь

EDIT ДЛЯ 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 
  • Пауза (с чтением или аналогичным) в xargs
  • Разделить слова от `read` и хранить до массива?
  • используйте команду «читать» для передачи строк в качестве позиционных параметров в сценарий оболочки
  • Как обрабатывать обратные стрелки, клавиши «Конец» и «Домой» в приглашении на чтение
  • Как читать с другого терминала?
  • Bash: интерактивное дистанционное приглашение
  • Как читать команды из файла?
  • while цикл работает только один раз?
  • Чтение переменных без bash из файла в скрипт bash
  • Используя sed с herestring (<<<) и прочитайте -a
  • Ждите ключа в сценарии оболочки, который может быть отправлен в / bin / bash
  • Linux и Unix - лучшая ОС в мире.