bash 上的「命令」是什麼?

bash 上的「命令」是什麼?

如果我在終端上輸入command,我不會得到“找不到命令”,並且退出代碼為 0 command

另外,command -h返回:

bash: command: -h: invalid option
command: usage: command [-pVv] command [arg ...]

它是做什麼用的?

答案1

help command

$ help command
command: command [-pVv] command [arg ...]
    Execute a simple command or display information about commands.

    Runs COMMAND with ARGS suppressing  shell function lookup, or display
    information about the specified COMMANDs.  Can be used to invoke commands
    on disk when a function with the same name exists.

    Options:
      -p    use a default value for PATH that is guaranteed to find all of
      the standard utilities
      -v    print a description of COMMAND similar to the `type' builtin
      -V    print a more verbose description of each COMMAND

    Exit Status:
    Returns exit status of COMMAND, or failure if COMMAND is not found.

作為更一般的說明,-h您應該嘗試:

type -a command

在這種情況下,這會告訴你它是一個 shell 內建函數。

help command

對於 shell 內建程式很有用。對於其他命令(和實際上,對於 shell 內建函數),嘗試

man somecommand

還有,-h不是一定“幫助”選項。如果您不知道命令的作用,那麼這可能不是一個安全的假設。更安全的是--help

somecommand --help

(常見指令其中-h是有效選項,但確實不是「幫助」的意思是ls, free, df, du。所有這些僅供參考,但-h僅意味著“幫助”的假設是一個危險的假設。

答案2

command就像幾乎所有其他 Unix/Linux 都記錄在手冊頁中一樣。 Typingman command提供了手冊,bash其中有一小節專門介紹內建指令command

指令 [-pVv] 指令 [arg ...]

使用參數運行命令會抑制正常的 shell 函數查找。僅執行內建指令或在 PATH 中找到的指令。如果給予 -p 選項,則使用 PATH 的預設值執行命令搜索,以保證找到所有標準實用程式。如果提供了 -V 或 -v 選項,則列印命令的描述。 -v 選項會導致顯示一個單詞,指示用於呼叫命令的命令或檔案名稱; -V 選項產生更詳細的描述。如果提供了 -V 或 -v 選項,則如果找到命令,則退出狀態為 0;如果未找到,則退出狀態為 1。如果兩個選項都未提供,且發生錯誤或找不到指令,則退出狀態為 127。

相關內容