將Bash命令工程化
我們平時喜歡使用腳本來處理一些事情,但是你會發(fā)現(xiàn)每次最多都是修修改改一個文件,卻沒有將這個命令實際作為一個項目來處理凹蜈。無論使用什么語言,工程化忍啸,系統(tǒng)化
是解決最后麻煩產(chǎn)生的最簡單方法仰坦,隨著功能的無限擴張,語法修正也罷计雌。
Hello World
$ vi helloworld
#!/bin/bash
echo "Hello World!"
$ bash helloworld
Hello World!
至此一個最簡單的腳本文件出現(xiàn)了悄晃。
Help
一條命令我們都知道離不開參數(shù),那么可以實現(xiàn)不同的邏輯處理。其中最常用的就是--help這個參數(shù)妈橄。我就來看看是怎么實現(xiàn)的庶近。
#!/bin/bash
if [[ $1 == '--help' ]] ; then
echo "This is help, why say Hello World?"
else
echo "Hello World!"
fi
工程化
一個項目需要工程化,就算在小眷蚓,它也有存在的意義鼻种,不能用過結(jié)束,否則就變得重復(fù)造車輪沙热,有害而無一益叉钥。
├── ges/ 項目主目錄
│ ├── CHANGELOG.md 更新日志
│ ├── README.md
│ ├── build.gradle 項目構(gòu)建腳本
│ ├── build.sh 項目執(zhí)行構(gòu)建腳本
│ ├── libs/ 其他引用的庫或者源碼
│ │ └── ges.jar
│ ├── res/ 資源文件目錄
│ │ └── ges.gradle
│ └── src/ 源碼目錄
│ ├── common/ 通用方法目錄,一般如命令檢測篙贸,環(huán)境檢測投队,計算等
│ ├── function/ 項目方法目錄,自定義方法
│ ├── ges.sh 主命令歉秫,即我們常說的main函數(shù)就是它蛾洛。
│ ├── install.sh 安裝腳本,命令打包完成后雁芙,安裝腳本用于安裝到計算機轧膘,使其可被方便執(zhí)行。
│ ├── options/ 選項目錄兔甘,也就是我們幫助文檔和幫助參數(shù)的設(shè)置
│ │ ├── ges_option_help.txt 幫助文檔谎碍,你想要展示給別人看的幫助信息
│ │ └── ges_options.sh 命令參數(shù)處理邏輯
│ └── uninstall.sh 卸載命令,安裝后洞焙,用于卸載用蟆淀,刪除緩存,配置信息之類的澡匪。
以上目錄結(jié)構(gòu)包含了一個腳本命令的基本開發(fā)流程所涉及的一些內(nèi)容的定義熔任,特殊的需要按照各自的需求進行擴容和開發(fā)。
待續(xù)...