前言
linux shell命令通常可以通過-h或--help來打印幫助說明,或者通過man命令來查看幫助,有時候我們也會給自己的程序寫簡單的幫助說明,其實幫助說明格式是有規律可循的
幫助示例
下面是git reset命令的幫助說明,通過man git-reset可以查看
git reset [-q] [
git reset (--patch | -p) [
git reset [--soft | --mixed | --hard | --merge | --keep] [-q] [
對於命令和參數大致有如下幾種類型
沒有任何修飾符參數 : 原生參數
<> : 占位參數
[] : 可選組合
() : 必選組合
| : 互斥參數
... : 可重復指定前一個參數
-- : 標記后續參數類型
下面來一一介紹
參數類型解讀
原生參數
說明文檔里的字符即為命令需要使用的字符,比如以上命令的
git reset
這種參數在使用時必需指定,且和說明文檔里的一致
占位參數
表示方式: <>
和原生參數類似,都是必需指定的,只不過占位參數的實際字符是在使用時指定的,同時為了方便閱讀會用一個描述詞匯來表示,並以<>包圍,比如
表示路徑,使用時可以指定為具體的路徑,而paths只是起一個說明作用,有些幫助說明里也會用大寫來表示占位參數,比如將以上參數說明寫成PATHS
可選組合
表示方式: []
括號里的參數為可選參數,比如usage第二個里面的[-q] ,則-q為可選參數
可選項和占位參數也可以同時使用,如
[
表示該參數可以指定某次提交,也可以不指定
必選組合
表示方式: ()
括號里的參數必需指定,通常里面會是一些互斥參數,比如
(--patch | -p)
表示--patch和-p這兩個參數必需指定一個
互斥參數
表示方式: |
互斥參數一般都在()和[]里,表示該參數只能指定其中一個,比如
[--mixed | --soft | --hard | --merge | --keep]
重復參數
表示方式: ...
表示前一個參數可以被指定多個,比如
git mv [
我們可以這樣使用
git mv -f a.cpp b.py dir
此時options對應為-f參數,source對應為a.cpp b.py,destination對應為dir
標記后續參數類型
表示方式: --
表示后續參數的某種類型,比如這里如果使用如下命令
git reset -p -- xx
對比第一個命令,這里的xx對應的應該是
rm -h
肯定是無法刪除的,因為這時-h會被認為是rm的一個參數選項,應該使用
rm -- -h
這時shell會將-h解釋為一個文件名傳遞給rm命令
解讀實戰
最后來解釋一個比較復雜的幫助說明
git cat-file (-t [--allow-unknown-type]|-s [--allow-unknown-type]|-e|-p|