我可以编辑 bash shell 命令吗?

我可以编辑 bash shell 命令吗?

我只是想修改一个 bash shell 命令,比如 exit,这样当我在终端中输入 exit 时,它会清除屏幕,并回显一些文本,等待 2 秒,然后执行 exit 函数。
那么有没有办法修改 Ubuntu 上的 shell 命令,如果有办法怎么办?

答案1

您可以使用shell 别名

alias exit='clear; sleep 2; exit'

要使其永久生效,请将别名添加到 ~/.bashrc 文件的底部。请参阅寻求帮助

答案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

相关内容