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

Действительно ли это возможно? Да. Действительно ли это - хорошая идея? Это зависит. Необходимо было бы только действительно сделать это, если приложение только существует как a .deb пакет. Намного более вероятно, что можно просто захватить восходящий источник и записать простой PKGBUILD для установки его с pacman.

Необходимо также искать АУР, чтобы гарантировать, что кто-то уже не сделал этого.

6
28.10.2015, 10:13
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, чтобы проверить, следует ли выводить предупреждение или нет.

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

EDIT FOR 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
2
27.01.2020, 20:30

Теги

Похожие вопросы