更新時(shí)間:2020-12-28 17:53:52 來源:動(dòng)力節(jié)點(diǎn) 瀏覽1687次
Shell是一個(gè)命令解釋器,它解釋由用戶輸入的命令并且把它們送到內(nèi)核。不僅如此,Shell有自己的編程語言用于對(duì)命令的編輯,它允許用戶編寫由shell命令組成的程序。同樣的,Linux系統(tǒng)中,shell作為編程語言也有自己的變量,本文我們就來為大家介紹Linux shell變量。
Linux Shell變量分為系統(tǒng)變量,自定義變量和位置變量。具體參考下文:
1.系統(tǒng)變量
$ # :保存程序命令行參數(shù)的數(shù)目
$ ?:保存前一個(gè)命令的返回碼
$ 0 :保存程序名
$ * :以("$1 $2...")的形式保存所有輸入的命令行參數(shù)
$ @ :以("$1""$2"...)的形式保存所有輸入的命令行參數(shù)
2.定義變量
shell語言是非類型的解釋型語言,不象用C++/JAVA語言編程時(shí)需要事先聲明變量.給一個(gè)變量賦值,實(shí)際上就是定義了變量.
在linux支持的所有shell中,都可以用賦值符號(hào)(=)為變量賦值.
如:
abc=9 (bash/pdksh不能在等號(hào)兩側(cè)留下空格)
set abc = 9 (tcsh/csh)
由于shell程序的變量是無類型的,所以用戶可以使用同一個(gè)變量時(shí)而存放字符時(shí)而存放整數(shù).
如:
name=abc (bash/pdksh)
set name = abc (tcsh)
在變量賦值之后,只需在變量前面加一個(gè)$去引用.如:
echo $name
3.位置變量
當(dāng)運(yùn)行一個(gè)支持多個(gè)命令行參數(shù)的shell程序時(shí),這些變量的值將分別存放在位置變量里.
其中第一個(gè)參數(shù)存放在位置變量1,第二個(gè)參數(shù)存放在位置變量2,依次類推...,shell保留
這些變量,不允許用戶以令外的方式定義他們.同別的變量,用$符號(hào)引用他們.
Linux shell變量是一種很“弱”的變量,默認(rèn)情況下,一個(gè)變量保存一個(gè)串,shell不關(guān)心這個(gè)串是什么含義。所以若要進(jìn)行數(shù)學(xué)運(yùn)算,必須使用一些命令例如let、declare、expr、雙括號(hào)等。shell變量可分為兩類:局部變量和環(huán)境變量。局部變量只在創(chuàng)建它們的shell中可用。而環(huán)境變量則可以在創(chuàng)建它們的shell及其派生出來的任意子進(jìn)程中使用。有些變量是用戶創(chuàng)建的,其他的則是專用shell變量。變量名必須以字母或下劃線字符開頭。其余的字符可以是字母、數(shù)字(0~9)或下劃線字符。任何其他的字符都標(biāo)志著變量名的終止。名字是大小寫敏感的。給變量賦值時(shí),等號(hào)周圍不能有任何空白符。為了給變量賦空值,可以在等號(hào)后跟一個(gè)換行符。用set命令可以查看所有的變量,unset var命令可以清除變量var,var相當(dāng)于沒有定義過。readonly var可以把var變?yōu)橹蛔x變量,定義之后不能對(duì)var進(jìn)行任何更改。對(duì)shell變量的引用方式很多,用這些方式可以方便的獲取shell變量的值,變量值的長度,變量的一個(gè)字串,變量被部分替換后的值等等。
有Linux shell變量,那么同樣地就有shell函數(shù)。在Linux系統(tǒng)下的shell編程中可以定義函數(shù)。函數(shù)實(shí)際上也是由若干條shell命令組成的,因此它與shell程序形式上是相似的,不同的是它不是一個(gè)單獨(dú)的進(jìn)程,而是shell程序的一部分。想要深入學(xué)習(xí)shell函數(shù)的小伙伴可以觀看本站的Linux教程,快速掌握shell編程知識(shí)。
Java實(shí)驗(yàn)班
0基礎(chǔ) 0學(xué)費(fèi) 15天面授
Java就業(yè)班
有基礎(chǔ) 直達(dá)就業(yè)
Java夜校直播班
業(yè)余時(shí)間 高薪轉(zhuǎn)行
Java在職加薪班
工作1~3年,加薪神器
Java架構(gòu)師班
工作3~5年,晉升架構(gòu)
提交申請(qǐng)后,顧問老師會(huì)電話與您溝通安排學(xué)習(xí)