나는 command이 foo
있는데 그것이 바이너리인지, 함수인지 또는 별칭인지 어떻게 알 수 있습니까?
답변
Bash 또는 다른 Bourne과 같은 쉘을 사용하는 경우을 사용할 수 있습니다 type
.
type command
command
쉘 내장, 별명 (있는 경우 무엇에 대한 별칭), 함수 (및 함수 본문을 나열하는 경우) 또는 파일에 저장되어 있는지 (있는 경우 파일 경로) 여부를 알려줍니다. .
“이진”파일에 대한 자세한 내용은 다음을 수행하십시오.
file "$(type -P command)" 2>/dev/null
command
별명, 함수 또는 쉘 내장 인 경우 아무것도 리턴하지 않지만 스크립트 또는 컴파일 된 바이너리 인 경우 추가 정보를 리턴합니다.
참고 문헌
답변
대답은 사용중인 쉘에 따라 다릅니다.
zsh의 경우 쉘 내장 whence -w
은 원하는 것을 정확하게 알려줍니다.
예 :
$ whence -w whence
whence : builtin
$ whence -w man
man : command
답변
zsh을 당신은 확인하실 수 있습니다 aliases
, functions
및 commands
배열을.
(( ${+aliases[foo]} )) && print 'foo is an alias'
(( ${+functions[foo]} )) && print 'foo is a function'
(( ${+commands[foo]} )) && print 'foo is an external command'
builtins
내장 명령에 대한 도 있습니다 .
(( ${+builtins[foo]} )) && print 'foo is a builtin command'