Command-Line

什麼是“非選項論點”?

  • January 29, 2022

我試圖理解但在“非選項論點info who”這個詞上完全失敗了。有人可以用簡單的話或例子向我解釋這個術語嗎?

更新:來自“資訊誰”:

如果沒有給出非選項參數,`who’ 會為目前登錄的每個使用者列印以下資訊:登錄名、終端行、登錄時間和遠端主機名或 X 顯示。

如果給定一個非選項參數who' uses that instead of a default system-maintained file (often/var/run/utmp’ 或/etc/utmp') as the name of the file containing the record of users logged on. /var/log/wtmp’ 通常作為參數給 `who’ 以查看誰以前登錄過。

如果給定兩個非選項參數who' prints only the entry for the user running it (determined from its standard input), preceded by the hostname. Traditionally, the two arguments given are我是?,如“我是誰”。

一世

$$ thought to $$知道參數和選項之間的區別,但這$$ again $$否定了很多。

術語並不完全固定,因此不同的文件使用不同的術語,或者更糟糕的是,相同的術語具有不同的含義。您正在閱讀的手冊頁中的術語很常見。它是POSIX標準中使用的一種。簡而言之,命令後面的每個單詞都是一個參數,以選項開頭的參數-是選項。

爭論

在 shell 命令語言中,傳遞給實用程序的參數相當於由 exec 函式之一創建的 argv 數組中的單個字元串。參數是命令名稱後面的選項、選項參數或操作數之一。

操作數

命令的參數,通常用作向實用程序提供完成其處理所需的資訊的對象。操作數通常遵循命令行中的選項。

選項

命令的參數,通常用於指定實用程序預設行為的更改。

“實用程序”是通常所說的“命令”(該標準使用“實用程序”一詞避免與“命令”的含義產生歧義,其中包括參數甚至複合 shell 命令)。

大多數命令都遵循標準實用程序參數語法,其中選項以-(dash aka 減號) 開頭。因此,選項類似於-a(短選項,遵循 POSIX 準則)或--all(長選項,來自 GNU 的擴展)。非選項參數是不以 開頭的參數-,或者僅由以下組成的參數-(將其who視為文字文件名,但許多命令將其視為標準輸入或標準輸出)。

此外,一些選項本身有一個論據。該參數可以通過多種方式傳遞:

  • 對於單字母選項,在實用程序的同一參數中:foo -obar:bar是單字母選項的參數-o
  • 在 GNU 長參數語法中,在同一個參數中,用等號分隔:foo --option=bar.
  • 在一個單獨的參數中:foo -o barfoo --option bar。如果選項-o(or --option) 帶有參數,則bar是選項-o(or --option) 的參數。如果-o(或--option)不帶參數,bar則為操作數。

這是一個更長的例子:

tail -n 3 myfile

-n是一個選項,3是選項的一個參數-n,並且myfile是一個操作數。

術語不同,因此您可能會發現在 POSIX 使用操作數的意義上使用**參數的文件。但是“非選項論點”比任何一個術語都更常見。

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