Shell

如何測試命令是別名、函式還是二進制?

  • June 14, 2021

我有命令foo,我怎麼知道它是二進制、函式還是別名?

如果您使用的是 Bash(或其他類似 Bourne 的 shell),則可以使用type.

type command

將告訴您command是 shell 內置、別名(如果是,別名為什麼)、函式(如果是,它將列出函式體)或儲存在文件中(如果是,則文件路徑) .

請注意,您可以有嵌套案例,例如函式的別名。如果是這樣,要找到實際類型,您需要先取消別名:

unalias command; type command

有關“二進制”文件的更多資訊,您可以執行

file "$(type -P command)" 2>/dev/null

command如果是內置別名、函式或 shell,這將不返回任何內容,但如果它是腳本或編譯的二進製文件,則返回更多資訊。

參考

引用自:https://unix.stackexchange.com/questions/89048