什麼是“非選項論點”?
我試圖理解但在“非選項論點
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 bar
或foo --option bar
。如果選項-o
(or--option
) 帶有參數,則bar
是選項-o
(or--option
) 的參數。如果-o
(或--option
)不帶參數,bar
則為操作數。這是一個更長的例子:
tail -n 3 myfile
-n
是一個選項,3
是選項的一個參數-n
,並且myfile
是一個操作數。術語不同,因此您可能會發現在 POSIX 使用操作數的意義上使用**參數的文件。但是“非選項論點”比任何一個術語都更常見。