Answers:
~/.bashrc
文件中定义了几个这样的别名,例如alias ls='ls --color=auto'
and alias grep='grep --color=auto'
(键入alias
不带任何参数的当前列表)。
exit
内置的bash- 对于常规命令,如果您希望它执行类似的操作,则可能会输入命令的完整路径(例如alias firefox='clear; sleep 2; /usr/bin/firefox'
)。以上可能仍然可以工作:)。exit
可能的替代方法是,类似于kill -SIGINT $$
,kill -SIGKILL $$
杀死进程的PID(SIGKILL
可以正常运行,但不能干净退出,其他内容似乎被终端忽略-信号处的内容:en.wikipedia.org/wiki/ Unix_signal)
unalias
例如命令在当前外壳中将其反转unalias exit
。您可以在命令前面加上反斜杠(即)来执行原始命令而不会造成混淆\exit
。
我发现了一种解决方法,而不是编辑exit bash命令,方法
trap 'clear; ~/ascii3.sh; spd-say "Exit"; sleep 2' EXIT
是使用终端的出口陷阱,并将其放在.pashrc文件的末尾,并且可以正常工作。
和ascii3.sh:
回声-e“ \ 033 [01; 31m” 回声“ _ _ __ _ _ ____ __ __ _ __ ____ ____ ____ __ _ _ _” 回声“ /)(\ / _ \ /)(\(__)/ _ \((\(// __)(__)(\ / _ \(\ /)/ \” 回声“)__(/ \\\ \ / /)_)/ \ //)((((__)_))D(/ \)/ \ _ /” 回声“ \ _)(_ / \ _ / \ _ / \ __ /(____)\ _ / \ _ / \ _)__)(__)\ ___)(____)(____ / \ _ / \ _ /( __ /(_)“
我认为我提出的问题是一个非常糟糕的问题,因为它没有反映出我的想法,但是我不会改变它,答案也不会随我便问。
您不能轻易修改命令,但是可以替换命令。
# 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
它,而是由Shell内部处理的。要覆盖,exit
您必须在您的程序中定义一个shell函数或别名(请参阅参考资料man bash
)$HOME/.bashrc