Shell
如何測試命令是別名、函式還是二進制?
我有命令
foo
,我怎麼知道它是二進制、函式還是別名?
如果您使用的是 Bash(或其他類似 Bourne 的 shell),則可以使用
type
.type command
將告訴您
command
是 shell 內置、別名(如果是,別名為什麼)、函式(如果是,它將列出函式體)或儲存在文件中(如果是,則文件路徑) .請注意,您可以有嵌套案例,例如函式的別名。如果是這樣,要找到實際類型,您需要先取消別名:
unalias command; type command
有關“二進制”文件的更多資訊,您可以執行
file "$(type -P command)" 2>/dev/null
command
如果是內置別名、函式或 shell,這將不返回任何內容,但如果它是腳本或編譯的二進製文件,則返回更多資訊。參考