command -v "program" >/dev/null 2>&1
program
-statement에 설치되어 있는지 POSIX 방식으로 확인해야 하는 경우 이 구문을 사용합니다 if
.
도움말 페이지에서는 명확하지 않습니다. 경로만 확인합니까, 아니면 실행 가능 비트도 확인합니까?
$ command --help
command: command [-pVv] command [arg ...]
...
-v print a description of COMMAND similar to the `type' builtin
...
감사해요.
답변1
command -v
PATH를 사용하여 실행 파일을 찾습니다.
또한 권한도 확인합니다. 시도하면 command -v a_non_executable_file
아무 것도 인쇄되지 않습니다.
시도해 보면 시스템 호출이 실행되는 strace bash -c 'command -v grep'
것을 볼 수 있습니다 access(2)
(이 시스템 호출은 파일에 대한 사용자의 권한을 확인합니다). command -v
실행할 수 있는 첫 번째 파일을 PATH에서 검색합니다.