为bash设置默认命令

时间:2013-09-08 20:14:28

标签: linux bash shell command-line command

假设我创建了自己的脚本,并且我希望该脚本是未找到命令时要执行的默认命令,如何配置bash以实现此目的

EG。该命令名为defCMD

假设我在命令行中输入了一些随机字符串:

$ viosjaldfksajflsfa

通常它会输出'viosjaldfksajflsfa not found'

然而,我希望'viosjaldfksajflsfa'作为参数输入到我编写的defCMD脚本中,而不是发生这种情况,因此请使用bash执行defCMD。

有没有办法让这种情况发生?

1 个答案:

答案 0 :(得分:2)

我的bash(Fedora)有以下

$ type command_not_found_handle 
command_not_found_handle is a function
command_not_found_handle () 
{ 
    runcnf=1;
    retval=127;
    [ ! -S /var/run/dbus/system_bus_socket ] && runcnf=0;
    [ ! -x /usr/libexec/packagekitd ] && runcnf=0;
    if [ $runcnf -eq 1 ]; then
        /usr/libexec/pk-command-not-found $@;
        retval=$?;
    else
        echo "bash: $1: command not found";
    fi;
    return $retval
}

您可以从此处开始,将其添加到.bashrc文件中。更改else分支。