"찾을 수 없음" 오류와 "명령을 찾을 수 없음" 오류의 차이점은 무엇입니까? 둘은 동일합니까?

"찾을 수 없음" 오류와 "명령을 찾을 수 없음" 오류의 차이점은 무엇입니까? 둘은 동일합니까?

존재하다이 문제사용자에게 "찾을 수 없음" 오류가 표시됩니다. 오류는 "명령을 찾을 수 없음"이 아니라 "찾을 수 없음"이라는 것을 깨달았습니다.

이 두 가지 오류가 다른가요? 이전에 이 문제에 주의를 기울인 적이 없는지, 아니면 이것이 차이를 가져오는지는 잘 모르겠습니다.

예는 다음과 같습니다.

/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

bashdash명령을 찾을 수 없는 경우를 처리하는 방법과 처리의 차이 입니다 .

에는 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

dashUbuntu는 내부 작업에 기본 셸을 사용하므로 dash특정 스크립트를 구문 분석할 때 자체 형식을 표시합니다.

관련 정보