我想在运行某些无法找到的命令后自动执行预设命令。有没有解决方案?
让我清楚我的问题。设置一个命令,当我在shell中键入一些命令并获得“command not found”结果时,该命令将自动执行。
答案 0 :(得分:4)
使用zsh,使用函数 command_not_found_handler :
command_not_found_handler () {
echo Oups
}
使用bash,使用函数 command_not_found_handle :
command_not_found_handle () {
echo Oups
}
使用这种机制,Archlinux有一个工具可以为您提供包含丢失命令的包。此工具称为 command_not_found ,可在AUR和Github上使用。其他发行版也存在类似的应用程序。
答案 1 :(得分:1)
只有先前使用逻辑and
运算符成功执行才能将命令链接起来的方式相同:
command1 && command2
只有在or
失败时才能使用逻辑command2
运算符才能运行command1
:
command1 || command2
然而,这将从command1
捕获所有错误状态,而不仅仅是not found
条件。
答案 2 :(得分:0)
尝试使用命令来实现目标,
cmd1 2>&1 | grep "command not found" > /dev/null && cmd2
简要说明,
cmd1
:您的系统中找不到该命令cmd2
:如果cmd1
的错误消息是“找不到命令”,请执行cmd2