Могу ли я отредактировать команду оболочки bash?

Я просто хочу изменить команду оболочки bash, например, exit, поэтому, когда я пишу exit в терминале, он очищает экран и выводит некоторый текст, ждет 2 секунды, а затем выполняет функцию выхода.
Так есть ли способ изменить команду оболочки в Ubuntu, если это не так?

1
задан 2 April 2015 в 02:14

3 ответа

Можно использовать псевдоним оболочки

alias exit='clear; sleep 2; exit'

, Чтобы сделать его постоянным, добавить псевдоним к нижней части ~/.bashrc файл. см. этот поток для справки

4
ответ дан 2 April 2015 в 02:14

Я нашел обходное решение вместо того, чтобы редактировать команду удара выхода,
trap 'clear; ~/ascii3.sh; spd-say "Exit"; sleep 2' EXIT при помощи прерывания к выходу в терминале, и я поместил его в конец .pashrc файла, и это работает.
И ascii3.sh:

echo -e "\033[01;31m"
echo " _  _   __   _  _  ____     __     __ _  __  ___  ____    ____   __   _  _  _   "
echo "/ )( \ / _\ / )( \(  __)   / _\   (  ( \(  )/ __)(  __)  (    \ / _\ ( \/ )/ \  "
echo ") __ (/    \\\ \/ / ) _)   /    \  /    / )(( (__  ) _)    ) D (/    \ )  / \_/  "
echo "\_)(_/\_/\_/ \__/ (____)  \_/\_/  \_)__)(__)\___)(____)  (____/\_/\_/(__/  (_)  "

я думаю вопрос, который я задал, был очень плохой, поскольку он не отразил мои мысли, но я не изменю его, ни ответ, я просто поместил этот ответ здесь для любого, кто хочет его.

1
ответ дан 2 April 2015 в 02:14

Вы не можете легко изменить команду, но можно заменить команду.

# 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

0
ответ дан 2 April 2015 в 02:14

Другие вопросы по тегам:

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