Я просто хочу изменить команду оболочки bash, например, exit, поэтому, когда я пишу exit в терминале, он очищает экран и выводит некоторый текст, ждет 2 секунды, а затем выполняет функцию выхода.
Так есть ли способ изменить команду оболочки в Ubuntu, если это не так?
Можно использовать псевдоним оболочки
alias exit='clear; sleep 2; exit'
, Чтобы сделать его постоянным, добавить псевдоним к нижней части ~/.bashrc файл. см. этот поток для справки
Я нашел обходное решение вместо того, чтобы редактировать команду удара выхода,
trap 'clear; ~/ascii3.sh; spd-say "Exit"; sleep 2' EXIT
при помощи прерывания к выходу в терминале, и я поместил его в конец .pashrc файла, и это работает.
И ascii3.sh:
echo -e "\033[01;31m" echo " _ _ __ _ _ ____ __ __ _ __ ___ ____ ____ __ _ _ _ " echo "/ )( \ / _\ / )( \( __) / _\ ( ( \( )/ __)( __) ( \ / _\ ( \/ )/ \ " echo ") __ (/ \\\ \/ / ) _) / \ / / )(( (__ ) _) ) D (/ \ ) / \_/ " echo "\_)(_/\_/\_/ \__/ (____) \_/\_/ \_)__)(__)\___)(____) (____/\_/\_/(__/ (_) "
я думаю вопрос, который я задал, был очень плохой, поскольку он не отразил мои мысли, но я не изменю его, ни ответ, я просто поместил этот ответ здесь для любого, кто хочет его.
Вы не можете легко изменить команду, но можно заменить команду.
# You only need this one time:
mkdir --mode=755 $HOME/bin
# You need this command once per login (or in $HOME/.bashrc)
PATH="$HOME/bin:$PATH"
Тогда любой исполняемый файл / сценарий в $HOME/bin
переопределит любую команду с тем же именем.
при вводе команды оболочка ищет исполняемый файл тем именем в каждом из каталогов в $PATH
.
, К сожалению, Вашим примером exit
является "Shell, встроенный" (см. man bash
), и не разыскивается вперед $PATH
, скорее он обрабатывается оболочкой внутренне. Для переопределения exit
, необходимо будет определить функцию оболочки или псевдоним (см. man bash
) в Вашем $HOME/.bashrc