Câu trả lời:
Nếu bạn đang ở trên Bash (hoặc một vỏ giống như Bourne khác), bạn có thể sử dụng type
.
type command
sẽ cho bạn biết liệu command
shell được tích hợp sẵn, bí danh (và nếu vậy, bí danh là gì), hàm (và nếu vậy nó sẽ liệt kê thân hàm) hoặc được lưu trữ trong một tệp (và nếu vậy, đường dẫn đến tệp) .
Để biết thêm thông tin về tệp "nhị phân", bạn có thể làm
file "$(type -P command)" 2>/dev/null
Điều này sẽ không trả về gì nếu command
là bí danh, hàm hoặc shell tích hợp nhưng trả về nhiều thông tin hơn nếu đó là tập lệnh hoặc tệp nhị phân được biên dịch.
Tài liệu tham khảo
Trong zsh bạn có thể kiểm tra aliases
, functions
và commands
mảng.
(( ${+aliases[foo]} )) && print 'foo is an alias'
(( ${+functions[foo]} )) && print 'foo is a function'
(( ${+commands[foo]} )) && print 'foo is an external command'
Ngoài ra builtins
, đối với các lệnh dựng sẵn.
(( ${+builtins[foo]} )) && print 'foo is a builtin command'