我只是想修改一个 bash shell 命令,比如 exit,这样当我在终端中输入 exit 时,它会清除屏幕,并回显一些文本,等待 2 秒,然后执行 exit 函数。
那么有没有办法修改 Ubuntu 上的 shell 命令,如果有办法怎么办?
答案1
答案2
我找到了一种解决方法,无需编辑 exit bash 命令,
trap 'clear; ~/ascii3.sh; spd-say "Exit"; sleep 2' EXIT
方法是在终端中使用陷阱退出,然后将其放在 .pashrc 文件的末尾,这样就可以了。
还有 ascii3.sh:
回显-e“ \ 033 [01; 31m” 回声“__ _ __ _ _ ____ __ __ _ __ __ ___ ____ ____ __ _ _ _” 回声“/ )( \ / _\ / )( \( __) / _\(( \( )/ __)( __)( \ / _\( \/ )/ \” 回声“)__(/ \\\ \/ /)_)/ \ / /)(((__)_))D(/ \)/ \_/“ 回声“\_)(_/\_/\_/ \__/ (____) \_/\_/ \_)__)(__)\___)(____) (____/\_/\_/(__/ (_)”
我认为我问的问题很糟糕,因为它没有反映我的想法,但我不会改变它,也不会改变答案,我只是把这个答案放在这里给任何想要它的人。
答案3
您不能轻易修改命令,但可以替换命令。
# 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
都会覆盖任何具有相同名称的命令。
当你键入一个命令时,shell 会在 中的每个目录中查找同名的可执行文件$PATH
。
不幸的是,您的示例exit
是“Shell 内置函数”(请参阅man bash
),并且不会随 一起查找$PATH
,而是由 shell 内部处理。要覆盖,exit
您必须man bash
在您的$HOME/.bashrc