Shell

shell 腳本和函式的通用標誌名稱和標準

  • January 7, 2014

我一直在調整在我的 shell 腳本和自定義函式中使用 GETOPT 和 GETOPTS,以使我能夠更靈活地使用我創建的函式。在使用了一些 UNIX 函式之後,我意識到其中很多都使用了類似的語法。

-v用於詳細輸出和-R/-r遞歸功能的範例。

我查看了實用程序約定的 POSIX 標準指南基於 C 的實用程序的 GNU 選項表。試圖了解這是否是設計使然,以及是否有任何我應該遵循的規則。

我的問題是:

  1. 是否有任何具有指定含義的特定選項標誌?

  2. 我對自己的選擇有多少自由,哪些規則我不應該違反?

  3. 我應該避免給出類似-t-T不同含義的選項,還是應該為了簡單起見將它們組合在一起?

  4. 什麼情況下應該使用大寫或小寫字母?

沒有快速而堅定的規則,甚至沒有共同的約定。最多有幾個選項在一些常用實用程序中一致使用——但不是在所有常用實用程序中使用。

這裡有一些常見的字母——但請記住,這些絕不是普遍的約定。如果您具有以下描述的功能之一,則最好使用相應的選項。如果其中一個選項對您的實用程序沒有意義,請隨意將其用於其他用途。

  • -c COMMAND-e COMMAND:執行命令。例子:sh -c, perl -e.
  • -d-D:調試。
  • -f:強制,不要要求確認危險動作。
  • -h:help — 但許多實用程序只辨識長選項--help或根本不辨識。範例:Linux getfacl, mount. 反例:GNU ls, du, df(沒有簡短的選擇,-h是人的大小),less-?是幫助,-h是別的東西)。
  • -i: 提示確認(互動式)。
  • -n: 不要採取行動,只是列印會做什麼。範例:make
  • -r-R:遞歸。
  • -q-s:安靜或沉默。範例:grep -q表示不顯示輸出,grep -s表示不顯示錯誤資訊。
  • -v: 冗長。
  • -V: 顯示版本資訊。

傳統上使用小寫字母,而大寫字母之所以被使用,是因為只有 26 個小寫字母。有時大寫字母與相應的小寫字母有關(例如:GNU grep -h/-H, ssh -x/-X, cp -r/-R),有時則不然。

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