Shell變量
Shell變量和其他語言的變量含義大同小異,就是可以存放不同的內(nèi)容,它也為靈活管理Linux系統(tǒng)提供特定參數(shù)。一般有兩層意思:變量名:使用固定的名稱,由系統(tǒng)預(yù)設(shè)或用戶定義;變量值:能夠根據(jù)用戶設(shè)置、系統(tǒng)環(huán)境變化而變化。
Shell變量的種類:
用戶自定義變量:由用戶自己定義、修改和使用
環(huán)境變量:由系統(tǒng)維護(hù),用于設(shè)置用戶的Shell工作環(huán)境,只有極少數(shù)的變量用戶可以修改
預(yù)定義變量:Bash預(yù)定義的特殊變量,不能直接修改
位置變量:通過命令行給程序傳遞執(zhí)行參數(shù),如ls -l /etc/httpd,其中后面兩個(gè)參數(shù)可視為位置參數(shù)。
變量的賦值與引用:
定義新的變量名要以英文字母或下劃線開頭,區(qū)分大小寫,格式為:變量名=變量值
查看變量的值:echo $變量名
[root@localhost ~]# DAY=Sunday [root@localhost ~]# echo $DAY ==>通過$符號引用指定名稱的變量值 Sunday [root@localhost ~]#
(注意:在查看變量時(shí),如果變量名容易和后邊的字符串連在一起導(dǎo)致混淆,則應(yīng)該使用大括號將變量名括起來,使用形式為:${變量名} ,例如: 若已知變量Var的值為Benet,則執(zhí)行“echo $Var3.0”命令后將顯示結(jié)果“.0”而不是“Benet3.0”,因?yàn)樵谠撁钪校瑫䦟ⅰ癡ar3”當(dāng)成變量名(默認(rèn)未定義此變量)。若希望正確顯示“Benet3.0”的輸出結(jié)果,則需要執(zhí)行“echo ${Var}3.0”)
[root@localhost ~]# Var =Benet [root@localhost ~]# echo $Var Benet [root@localhost ~]# echo $Var3.0 .0 [root@localhost ~]# echo ${Var}3.0 Benet3.0 [root@localhost ~]#
從鍵盤輸入內(nèi)容為變量賦值,格式為:read [-p "輸入信息"] 變量名
[root@localhost ~]#read var haha ==>這里等待輸入 [root@localhost ~]#echo $var haha [root@localhost ~]#
在給變量賦值時(shí),使用不同的引號操作的區(qū)別:
1)使用雙引號時(shí),允許在雙引號的范圍內(nèi)使用“$”符號引用其他變量的值(變量引用)
2)使用單引號時(shí),將不允許在單引號的范圍內(nèi)引用其他變量的值,“$”符號或者其他任何符號將作為普通字符看待
[root@localhost ~]#name=linuxidc [root@localhost ~]#echo $name linuxidc [root@localhost ~]#myname="$name is me" ==>這里使用的是雙引號 [root@localhost ~]#echo $myname linuxidc is me ==>將$name這個(gè)變量執(zhí)行出來了 [root@localhost ~]#myname='$name is me' ==>這里使用的是單引號 [root@localhost ~]#echo $myname $name is me ==>原樣顯示出來了,$name沒有執(zhí)行 [root@localhost ~]#
3)使用反撇號時(shí),允許將執(zhí)行特定命令的輸出結(jié)果賦值給變量(命令替換),反撇號中的內(nèi)容要求是可執(zhí)行的命令。需要嵌套使用時(shí),可以將反撇號改為 $( ... ) 的形式
這么說吧,在一串命令中,在`之內(nèi)的命令會被先執(zhí)行,然后將其執(zhí)行出來的結(jié)果作為外部的輸入信息。
[linuxidc@localhost ~]$ locate crontab /etc/anacrontab /etc/crontab /usr/bin/crontab /usr/share/man/man1/crontab.1.gz ..... [linuxidc@localhost ~]$ ls -l `locate crontab` ==>先執(zhí)行l(wèi)ocate crontab,再執(zhí)行l(wèi)s -l -rw-r--r-- 1 root root 298 2006-12-18 /etc/anacrontab -rw-r--r-- 1 root root 255 2006-07-15 /etc/crontab -rwsr-sr-x 1 root root 315416 2008-07-15 /usr/bin/crontab -rw-r--r-- 1 root root 1846 2008-07-15 /usr/share/man/man1/crontab.1.gz ..... [linuxidc@localhost ~]$
設(shè)置變量的作用范圍,格式:export 變量名
一般情況下,父進(jìn)程的自定義變量是無法在子進(jìn)程中使用的,但是通過export將變量變成環(huán)境變量后,就能夠在子進(jìn)程下使用了。
[root@localhost ~]#name=linuxidc [root@localhost ~]#echo $name linuxidc [root@localhost ~]# export name ==>輸出為全局變量 [root@localhost ~]# zsh [root@localhost]~# echo $name linuxidc [root@localhost]~# exit [root@localhost root]# unset name==>消除變量內(nèi)容 [root@localhost root]# echo $name [root@localhost ~]#
變量還有一個(gè)好處,當(dāng)您經(jīng)常訪問一個(gè)目錄時(shí),而且這個(gè)目錄比較長,可以將它付給一個(gè)簡單的變量,這樣進(jìn)入這個(gè)目錄時(shí)候只需cd 變量就行了。如work="~/temp/2013/test/",則進(jìn)入這個(gè)目錄只需cd work。
數(shù)值變量的運(yùn)算:
之前講到過可以使用命令bc來打開一個(gè)計(jì)算器,其實(shí)Bash程序并不適合進(jìn)行強(qiáng)大的數(shù)學(xué)運(yùn)算,例如小數(shù)或指數(shù)運(yùn)算的,一般只能進(jìn)行簡單的整數(shù)運(yùn)算,若不使用bc,則也可以使用下列格式來進(jìn)行簡單數(shù)值計(jì)算:
格式:expr 變量1 運(yùn)算符 變量2 [..運(yùn)算符 變量n...]
expr命令常用的運(yùn)算符有:+、-、\*(注意要有\(zhòng))、/、%
2015職稱計(jì)算機(jī)考試書PowerPoint2007中 .. 定價(jià):¥45 優(yōu)惠價(jià):¥42 更多書籍 | |
2015年全國職稱計(jì)算機(jī)考試教材(2007模 .. 定價(jià):¥225 優(yōu)惠價(jià):¥213 更多書籍 |