h0rr0rr_drag0n 04.05.2009 14:52
Tips & tricks — Изменение реакции bash на ввод несуществующей команды.
В Debian и Ubuntu bash пропатчен специальным патчем, который добавляет функцию, обрабатывающую ввод несуществующей команды.Функция эта называется command_not_found_handle. В Ubuntu она уже используется для вывода сообщения о возможности установить недостающую программу.
Естественно эту функцию можно переопределить в .bashrc, приспособив ее под свои нужды. У меня, например, просто выводится сообщение об отсутствии введенной команды.
function command_not_found_handle {
EXECUTED_CMD=`history | tail -n 1 | awk '{$1 = ""; print $0}' | colrm 1 1`
echo -e "ОноТолЕй СъеЛ \033<1;37m$EXECUTED_CMD\033<0;37m. ПЫщЬ пЫщЬ!!!111"
echo -e "Воены УПЧК следят за тобой "'$USERNAME'
}
ввожу sl
вижу ответ zsh: Заменить 'sl' на 'ls' ? sl
:)
PS. '$USERNAME' никогда не выведет имя юзверя ибо одинарные ковычки
вижу ответ zsh: Заменить 'sl' на 'ls' ? sl
:)
PS. '$USERNAME' никогда не выведет имя юзверя ибо одинарные ковычки
$USERNAME' никогда не выведет имя юзверя ибо одинарные ковычки
Так и было задумано =))
В функции небольшая бага, которая меняет цвет текста в консоли (у меня по умолчанию зеленый).
Думаю имеет смысл просто выделять команду полужирным, без изменения цвета.
Думаю имеет смысл просто выделять команду полужирным, без изменения цвета.
Это фича.)) Функция меняет цвет текста на белый - смотри escape-коды перед "пыщь-пыщь". Чтобы снова был зеленый - пропиши туда escape-коды для зеленого.
Плохая практика — делать такие «фичи». И фикс ты предложил плохой. Правильно — это запомнить состояние цветов, сменить на свои, вывести сообщение, вернуть те, что были.
Имхо.
Имхо.
у тя есть дефолтный шрифт, в него и возвращать надо, к примеру в zsh это %{\e<0m%} или %{$reset_color%} в bash вроде первое в виде \e<0m должно сработать
Ну %{$reset_color%} (и его аналог в bash'е) — тоже не совсем хорошо в данном случае.
Потому что krig у себя в .bashrc прописал что-то там особенное, ты переназначил на своё, а потом сбросил в дефолтное — то есть сбросил и свои настройки, и, что самое важное, krig'а. Так что запомнить и восстановить — единственно верное решение.
Вспомнить бы, как команды назывались…
Потому что krig у себя в .bashrc прописал что-то там особенное, ты переназначил на своё, а потом сбросил в дефолтное — то есть сбросил и свои настройки, и, что самое важное, krig'а. Так что запомнить и восстановить — единственно верное решение.
Вспомнить бы, как команды назывались…
Есть там какие-то команды… Честно говоря, не помню названий, но есть набор утилит для контроля за консолью: смена цвета, перемещение курсора в произвольную позицию, получение текущих установок цветов и т.п.
В bash дефолтный цвет имеет код \033<0;m , если я не ошибаюсь. Вечером дома гляну и напишу точнее.
=)