什么是 docopt
docopt是一種python 編寫的命令行執行腳本的交互語言。
它是一種語言!
它是一種語言!
它是一種語言!
使用這種語言可以在自己的腳本中,添加一些規則限制,這樣腳本在執行的時候就必須按照這種格式來執行,同時,也可以很方便的編寫一些幫助信息(其實就是很多軟件在輸入-h時候顯示的信息,例如php -h會顯示所有 php的執行指令,並且也通過docopt限制了php 指令的格式),下面將會有一些簡單的例子。
docopt的安裝
docopt有很多種版本,分別支持不同的語言,最簡答的docopt支持python腳本,docopt.java支持java腳本,docopts則是支持shell腳本的(下面的例子主要以docopts為例),具體的可以參見github的docopt說明
安裝docopt
以mac os x為例安裝,安裝docopts前首先需要安裝docopt,有兩種安裝方法
方法一
比較簡單的方法是直接用 pip 安裝, pip install docopt==0.6.2
有些mac可能不支持直接pip 指令,需要先安裝pip
方法二
也可以在github上下載源碼(docopt是開源項目),然后通過python setup.py install 安裝
安裝docopts
安裝docopts就必須使用上面安裝docopt的方法二,在GitHub上下載源碼,然后 使用python安裝,下載地址
docopts的使用
好了,現在可以在我們的shell腳本中使用docopt編輯一些自己的規則了,例如在下面這個腳本例子中
eval "$(docopts -V - -h - : "$@" <<EOF
Usage:
./test.sh wel
./test.sh bye
Options:
wel welcome.
bye say goodbye.
----
EOF
)"
if $wel ; then
echo "welcome"
fi
if $bye ; then
echo "goodbye"
fi
這個test.sh腳本,在執行的時候 ./test.sh -h 可以看到幫助說明,並且這種定了了該腳本執行只能是wel 和 bye兩種參數格式
docopt還有很多種定義命令執行方式的語法,詳細的參見docopt語法介紹