Posix

互動式命令使用參考:你一般在 Unix 上都有嗎?

  • August 4, 2014

為什麼一些命令依賴manpages而另一些依賴於--help標誌之類的東西來提供命令使用參考的問題並不新鮮命令文件命令用法概要之間的範圍通常有所不同。後者通常是前者的子集。但是,即使大多數命令和實用程序都有聯機幫助頁,它們的概要部分的格式也存在差異,這在嘗試提取此類資訊時具有非常實際的意義。在其他情況下,strings當命令似乎沒有文件時,可能會使用該實用程序找到線索。

我對這個QNX平台上的命令很感興趣,並發現了use命令1來顯示使用資訊。如中所述usemsg,該框架涉及在實用程序源中設置標準使用記錄,一旦編譯,就可以使用use命令訪問它,您還可以包裝本機功能等。這非常方便,因為我可以簡單地做

use -d dir >>file

on/base/proc/boot提取系統上所有命令的所有用法。

所以我然後簡要地查看了GNU coreutils lsFreeBSD ls的原始碼,看看他們是否做了類似的事情,前者將使用資訊放在一些名為函式的**用法中(我猜),而後者似乎沒有把它放在任何地方完全沒有(?)。--help


  • 這種解決方案(use)是您在商業 Unix中發現的以互動方式呈現命令使用參考的典型解決方案嗎?
  • POSIX/SUS 是否推薦或建議有關在命令中呈現/實現命令使用參考的任何內容(而不是為shell 實用程序指定符號)?

1.use命令:

use
Print a usage message (QNX Neutrino)

Syntax:
use [-aeis] [-d directory] [-f filelist] files

Options:
-a
   Extract all usage information from the load module in its source form, suitable for piping into usemsg. 
-d directory
   Recursively display information for all files under directory. 
-e
   Include only ELF files. 
-f filelist
   Read a list of files, one per line, from the specified filelist file, and display information for each. 
-i
   Display build properties about a load module. 
-s
   Display the version numbers of the source used in the executable. 
files
   One or more executable load modules or shell scripts that contain usage messages. 

商業版通常僅在手冊頁中提供使用資訊。讓命令本身顯示使用資訊不是傳統的 Unix 功能(除了顯示支持的選項列表,但沒有任何解釋,使用錯誤)。POSIX 及其親屬不會談論這樣的事情。

有一個--help顯示使用摘要的選項(通常是一個選項列表,每行一個,每個選項最多 60 個字元的描述)是GNU 標準。據我所知,這個約定是由 GNU 項目發起的,作為多字母選項名稱的雙破折號約定的一部分。還有其他實用程序,例如 X11 實用程序,使用帶有單個破折號和 support 的多字母選項名稱-help;不知道是哪個先來的。

use命令是 QNX 的東西。

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