错误“未找到”和错误“命令未找到”有什么区别,它们是否相同?

错误“未找到”和错误“命令未找到”有什么区别,它们是否相同?

这个问题用户收到错误“未找到”。我意识到错误是“未找到”而不是“命令未找到”。

这两个错误有不同吗?我不确定我是否以前从未关注过这一点,或者这是否有所不同。

这是一个例子:

/etc/cron.daily/apt:
/etc/cron.daily/apt: 91: /etc/cron.daily/apt: date: not found
/etc/cron.daily/apt: 97: /etc/cron.daily/apt: rm: not found
/etc/cron.daily/apt: 448: /etc/cron.daily/apt: pidof: not found
xargs: rm: No such file or directory
/etc/cron.daily/apt: 176: /etc/cron.daily/apt: date: not found
/etc/cron.daily/apt: 176: /etc/cron.daily/apt: date: not found

答案1

bash它是如何和dash处理未找到命令的情况之间的区别。

在 中bash,有一个名为 的函数command_not_found_handle

$ type command_not_found_handle 
command_not_found_handle is a function
command_not_found_handle () 
{ 
    if [ -x /usr/lib/command-not-found ]; then
        /usr/lib/command-not-found -- "$1";
        return $?;
    else
        if [ -x /usr/share/command-not-found/command-not-found ]; then
            /usr/share/command-not-found/command-not-found -- "$1";
            return $?;
        else
            printf "%s: command not found\n" "$1" 1>&2;
            return 127;
        fi;
    fi
}

所以在bash

$ foobar
foobar: command not found

在 的情况下dash,没有定义这样的函数,我们得到:

$ foobar
dash: 1: foobar: not found

由于 Ubuntu 使用dash默认 shell 进行内部操作,因此在dash解析某些脚本时它会显示自己的格式。

相关内容