前言
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對應的應該是引數,當我們指定--之後,則git會認為xx就是乙個路徑,那怕它是特殊符號或者路徑並不存在。這是shell命令的乙個通用方式,比如我們有乙個檔名為-h,如果想刪除這個檔案,執行
rm -h
肯定是無法刪除的,因為這時-h會被認為是rm的乙個引數選項,應該使用
rm -- -h
這時shell會將-h解釋為乙個檔名傳遞給rm命令
解讀實戰
最後來解釋乙個比較複雜的幫助說明
git cat-file (-t [--allow-unknown-type]|-s [--allow-unknown-type]|-e|-p||--textconv)
該命令引數由四個部分,其中git和cat-file為原生引數,()裡的為可選組合, 為佔位引數
組合又由6部分組成,為互斥關係
-t [--allow-unknown-type]
-s [--allow-unknown-type]
-e-p
--textconv
因此該命令的幫助說明可以拆分如下
git cat-file -t
git cat-file -t --allow-unknown-type
git cat-file -s
git cat-file -s --allow-unknown-type
git cat-file -e
git cat-file -p
git cat-file
git cat-file --textconv
BMP格式詳解
列舉 c windows blue lace 16.bmp 位 件頭的格式 typedef structbitmapfileheader 檔案頭結構體,14位元組 typedef structbitmapinfoheader 位圖資訊頭,40位元組 bmp檔案詳解 2 2007 03 21 12 2...
Crontab 格式詳解
第1列分鐘1 59 第2列小時1 23 0表示子夜 第3列日1 31 第4列月1 12 第5列星期0 6 0表示星期天 第6列要執行的命令 下面是crontab的格式 分 時 日 月 星期 要執行的命令 這裡有crontab檔案條目的一些例子 30 21 usr local apache bin a...
VCF格式詳解
cvf是用於描述snp,indel和sv結果的文字檔案。在gatk軟體中得到最好的支援,當然samtools得到的結果也是cvf格式,和gatk的cvf格式有點差別。先給出乙個vcf檔案的範例 fileformat vcfv4.0 chrom pos id ref alt qual filter i...