By WangGaoPeng
2017.12.4日是我和我對象的談戀愛兩周年契讲,作為一個IT從業(yè)人員唠雕,在這個普天同慶的日子里村缸,我終于可以潛下心來學(xué)習(xí)了......
這是一篇技術(shù)文章镣奋,不是撒狗糧的文章谣殊,哈哈,話不多說進(jìn)入今天的Shell編程的正題
作為一個從業(yè)三年的集成商的系統(tǒng)工程師紊馏,我覺得自己的發(fā)展需要有shell編程來支撐自己的技術(shù)體系
終于在今天晚上可以忍著痛苦來學(xué)習(xí)了一下shell編程
Shell之入門的哎口(ECHO)
在網(wǎng)上學(xué)習(xí)的知識標(biāo)準(zhǔn)的shell框架是醬紫的
#!/bin/bash
#auto print parameter \\簡述作用
# by wgp 2017-12-4? ? \\作者蒲犬,創(chuàng)作時間
在控制臺打印輸出My name is “名字” 如下:
echo "My name is WangGaoPeng"
其實(shí)這是不太標(biāo)準(zhǔn)的書寫方法朱监,正規(guī)的應(yīng)該是給name一個定義,在echo中引用此變量原叮,如下:
name=WangGaoPeng
echo "My name is $name"? \\$name指的就是上面定義的name=WangGaoPeng
效果嘛和上圖是一樣的
在腳本中使用$引用PWD赫编、UID巡蘸,判斷目錄路徑以及用戶UID
echo $UID
echo $PWD
加上這兩條然后再/bin/bash運(yùn)行一下
如圖:出現(xiàn)的/root就是當(dāng)前所在目錄為/root;0就是當(dāng)前用戶的UID為0擂送,不信悦荒?不信你就新建一個abc用戶,然后給這個腳本一個755權(quán)限嘹吨,自己執(zhí)行一下試試去搬味。
ok蟀拷,next one碰纬,現(xiàn)在說說我剛學(xué)的$0 和$1的用法
繼續(xù)剛才的腳本,末尾添加
echo $0
echo $1
/bin/bash echo.sh運(yùn)行如下:
我們看到$0位置顯示的是文件名 對问芬,$0的作用就是顯示文件名字了悦析,別的作用作為新手我還不清楚.......
然后$1位置沒有任何東西,納尼此衅?那應(yīng)該怎么整呢强戴,從網(wǎng)上學(xué)習(xí)到,$1的作用就是顯示參數(shù)的挡鞍。?
$1使用方法 /bin/bash echo.sh test 如圖 $1的用法
是不是很神奇骑歹,對$1位置顯示的就是顯示我們指定的參數(shù)test,如果想顯示兩個參數(shù)匕累,那就定義
echo $1 $2即可
繼續(xù)學(xué)習(xí)
學(xué)習(xí)$? $#? $* 以下是我個人總結(jié)的陵刹,應(yīng)該面會很窄,但是作為新手理解應(yīng)該夠用了-_-
$? 判斷上一個命令是否執(zhí)行成功
$# 判斷有多少個參數(shù)
$* 總結(jié)有哪些參數(shù)
echo "This \$0 is $0"
echo "This \$1 is $1"
echo "This \$2 is $2"
echo "This \$* is $*"
echo "This \$? is $?"
echo "This \$# is $#"
添加完畢欢嘿,go on衰琐,繼續(xù)運(yùn)行一下,如圖 不帶參數(shù)的 echo腳本
開頭的目錄名字 UID 什么的我就不說了炼蹦,$0和$1的用法有人會對反斜杠(\)有疑問羡宙,這個反斜杠就是轉(zhuǎn)意的意思,這個$0不做變量使用掐隐,就當(dāng)普通的echo輸出用狗热。
這下就明白了$0的作用還是顯示文件名字,但是$1和$2都是空白虑省;
$*也是空白匿刮,因?yàn)闆]有參數(shù)啊,不明白看上面的 $*的解釋
$? 因?yàn)槟_本已經(jīng)執(zhí)行探颈,無報錯熟丸,自然就是0了,想看$0執(zhí)行錯誤的看 $0執(zhí)行錯誤 image
$# 也是空白伪节,因?yàn)闆]有加參數(shù)啊光羞,-_-!
接下來绩鸣,我們在執(zhí)行腳本的時候,后面加上 wgp jrx 如圖 帶參數(shù)的echo腳本
這下就一目了然了纱兑,參數(shù)有兩個呀闻,所以$#是2,別的我就不解釋了潜慎,自己對著看吧捡多。
哎口(ECHO)的Menu的騷操作
使用echo做一個假假的lamp的安裝菜單,這個操作需要另起一個shell文件哦勘纯,別忘了標(biāo)準(zhǔn)框架
echo -e "\033[32m please select Menu follow:\033[1m"
echo "1)install apache service"
echo "2)install Mysql service"
echo "3)install Php service"
echo "################################"
效果如圖 假假的Menu的腳本
看我們的字體都變成了原諒綠的顏色
這是因?yàn)閑cho -e的參數(shù)局服,這是一個標(biāo)準(zhǔn)的套路
echo -e "\033 [32m *********:\033[1m" \\這里可以寫成1m或者32m,1m指的是以下所有的文字的顏色都編程綠色驳遵,32m指的是當(dāng)前這一行變成綠色
Shell 入門之if else
艸淫奔,先不寫了,有點(diǎn)多堤结,我們明天晚上再賤