Posix
互動式命令使用參考:你一般在 Unix 上都有嗎?
為什麼一些命令依賴
manpages
而另一些依賴於--help
標誌之類的東西來提供命令使用參考的問題並不新鮮。命令文件和命令用法概要之間的範圍通常有所不同。後者通常是前者的子集。但是,即使大多數命令和實用程序都有聯機幫助頁,它們的概要部分的格式也存在差異,這在嘗試提取此類資訊時具有非常實際的意義。在其他情況下,strings
當命令似乎沒有文件時,可能會使用該實用程序找到線索。我對這個QNX平台上的命令很感興趣,並發現了
use
命令1來顯示使用資訊。如中所述usemsg
,該框架涉及在實用程序源中設置標準使用記錄,一旦編譯,就可以使用use
命令訪問它,您還可以包裝本機功能等。這非常方便,因為我可以簡單地做use -d dir >>file
on
/base
並/proc/boot
提取系統上所有命令的所有用法。所以我然後簡要地查看了GNU coreutils ls和FreeBSD 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 的東西。