command 명령

용도

단순 명령을 실행합니다.

구문

command [-p] command_name [argument...]
command [-p] [-v|-V ] command_name

설명

command 명령을 사용하면 쉘이 쉘 기능 검색을 억제하면서 지정된 명령과 인수를 단순 명령으로 처리합니다.

일반적으로, /(슬래시)(특정 경로를 나타냄)가 명령 앞에 없으면, 쉘은 다음 범주를 검색하여 명령을 찾습니다.

  1. 특수 내장 쉘
  2. 쉘 기능
  3. 정규 내장 쉘
  4. PATH 환경 변수

예를 들어, 정규 내장과 이름이 같은 함수가 있는 경우, 시스템은 해당 함수를 사용합니다. command 명령을 통해 함수와 이름이 같은 명령을 호출하고 단순 명령을 가져올 수 있습니다.

command -vcommand -V 명령은 쉘에서 사용되는 경로 이름과 쉘이 명령 유형을 해석하는 방식(내장, 함수, 별명 등)을 표준 출력에 기록합니다. -v-V 플래그는 현재 쉘 환경과 관련하여 출력을 생성하므로, command 명령은 Korn 쉘 또는 POSIX 쉘 정규 내장 명령으로 제공됩니다. /usr/bin/command 명령은 서브쉘 또는 별도의 명령 실행 환경에서 호출되기 때문에 올바른 결과를 생성하지 않을 수 있습니다. 다음 예제에서 쉘은 별명, 서브루틴 또는 특수 쉘 명령을 식별할 수 없습니다.

(PATH=foo command -v)
nohup command -v

플래그

항목 설명
-p PATH 환경 변수의 디폴트 값을 사용하는 명령 검색(즉, 모든 표준 명령 검색)을 수행합니다.
-v 다음 규칙에 따라 지정된 명령을 호출하기 위해 현재 쉘이 사용하는 경로 이름을 표준 출력에 기록합니다.
  • 명령, 정규 내장 명령, /(슬래시)를 포함하는 명령, PATH 환경 변수에서 찾은 모든 구현 제공 함수는 절대 경로 이름으로 기록됩니다.
  • 쉘 기능, 특수 내장 명령, PATH 환경 변수 검색과 연관되지 않는 정규 내장 명령, 쉘 전용어가 해당 이름 그대로 기록됩니다.
  • 별명은 그대로 식별되고, 별명 정의가 문자열에 포함됩니다.

지정된 명령 이름을 찾을 수 없으면 출력이 기록되지 않고 종료 상태는 >0 값을 리턴합니다.

-v 현재 쉘 환경에 의해 해석될 명령 이름을 표준 출력에 기록합니다. 이 출력의 형식이 지정되지 않더라도, 출력은 다음 범주 중에서 명령이 속하는 범주를 표시합니다.
  • 명령, 정규 쉘 명령, PATH 환경 변수를 사용하여 찾은 모든 구현 제공 서브루틴은 있는 그대로 식별되고 절대 경로 이름으로 기록됩니다.
  • 기타 쉘 함수는 함수로 식별됩니다.
  • 별명은 그대로 식별되고, 별명 정의가 문자열에 포함됩니다.
  • 특수 내장 명령은 있는 그대로 식별됩니다.
  • PATH 환경 변수 검색과 연관되지 않는 정규 내장 명령은 있는 그대로 식별됩니다.
  • 쉘 전용어는 있는 그대로 식별됩니다.

종료 상태

-v 또는 -V 플래그가 지정되면 다음 종료값이 리턴됩니다.

항목 설명
0 정상적으로 완료되었습니다.
> 0 command_name 매개변수로 지정된 명령을 찾을 수 없거나 오류가 발생했습니다.

-v 또는 -V 플래그가 지정되지 않으면 다음 종료값이 리턴됩니다.

항목 설명
126 command_name 매개변수로 지정된 명령이 있지만 호출할 수 없습니다.
127 command 명령에서 오류가 발생했거나 command_name 매개변수로 지정된 명령을 찾을 수 없습니다.

그렇지 않으면 command 명령이 command_name 매개변수로 지정된 명령과 연관된 종료 상태를 리턴합니다.

  1. 디렉토리를 변경할 때마다 새 작업 디렉토리를 인쇄하는 cd 명령의 버전을 작성하려면 다음을 입력하십시오.
    cd () {
            command cd "$@" >/dev/null
            pwd
    }
  2. 스크립트가 상위에 속하지 않도록 SSH(Secure Shell) 스크립트를 시작하려면 다음을 입력하십시오.
    IFS='
    '
    #       The preceding value should be <space><tab><newline>.
    #       Set IFS to its default value
     
    \unalias -a
    #       Unset all possible aliases.
    #       Note that unalias is escaped to prevent an alias
    #       being used for unalias.
     
    unset -f command
    #       Ensure command is not a user function.
     
    PATH="$(command -p getconf _CS_PATH):$PATH"
    #       Put on a reliable PATH prefix.
     
    # ...
    이때 PATH 환경 변수에서 호출한 디렉토리에 대한 올바른 권한이 지정된 경우 스크립트에는 호출한 명령이 의도한 명령인지 확인하는 기능이 있습니다.

파일

항목 설명
/usr/bin/ksh Korn 쉘 command 내장 명령을 포함합니다.
/usr/bin/command command 명령을 포함합니다.