명령을 찾을 수 없으면 파일 실행

명령을 찾을 수 없으면 파일 실행

Linux에서 파일을 실행하려고 하면 항상 ./executablefile.executablefile

하지만 명령을 찾을 수 없으면 파일을 실행하고 싶습니다(명령이 우선순위임). 가이드를 통해 조정했는데 명령어를 작성했는데 찾을 수 없으면 pacman데이터베이스에서 검색해서 해당 명령어가 어떤 패키지에 있는지 알려줘서 명령어가 나오면 뭔가 할 수 있다는 걸 알 수 있어요 command not found.

이를 수행할 수 있는 좋은 방법이 있습니까?

답변1

가장 간단하지만 종종 금기시되는 방법은 ./다음과 같이 쉘 시작 스크립트 끝에 환경 변수를 추가하는 것입니다(bash/sh 변형).PATH

export PATH=$PATH:./

이렇게 하면 쉘이 로컬 디렉토리에서 명령을 찾기 전에 먼저 모든 공통 디렉토리를 시도하게 됩니다.

참고: 사용에 따른 책임은 사용자 본인에게 있으며 절대로 루트로 수행하지 마십시오.

답변2

나는 그것을 사용하고 있습니다 command-not-found version: 0.2.44. 명령을 찾을 수 없으면 이름이 지정된 함수가 실행되고 command_not_found_handle()유사한 명령 목록이 제공됩니다.

다음과 같이 함수를 작성합니다(단지 터미널에 복사하여 붙여넣으면 됩니다. 영구적이지 않습니다).

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

처음 몇 줄을 편집했습니다. 예를 들어, now를 입력했는데 foobar명령을 찾을 수 없으면 현재 폴더에서 이름이 이라는 파일이 존재하는지 확인하고 foobar, 파일이 실행 가능한 경우( -x) 해당 파일이 실행됩니다( ./$1). echo필요한 경우 이 줄을 삭제할 수 있습니다.

영구적으로 만들기 위해:

이 함수는 일반적으로 파일에 정의됩니다 /etc/bash.bashrc. 이 기능을 파일에 추가할 수 있습니다 ~/.bashrc. 여기서는 의 섹션을 다룹니다 /etc/bash.bashrc.

답변3

파일을 /usr/bin에 넣은 다음 이름을 입력하여 실행하세요. 탭 완성도 거기에서 작동합니다

관련 정보