Làm thế nào để kiểm tra nếu lệnh là bí danh, hàm hoặc nhị phân?


Câu trả lời:


23

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 commandshell đượ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 commandlà 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


3

Câu trả lời sẽ phụ thuộc vào loại vỏ bạn đang sử dụng.

Đối với zsh, shell dựng whence -wsẽ cho bạn biết chính xác những gì bạn muốn

ví dụ

$ whence -w whence
whence : builtin
$ whence -w man     
man : command 

1

Trong zsh bạn có thể kiểm tra aliases, functionscommandsmả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'
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.