2022-5-6 Shell變量

Shell變量


定義變量時,變量名不加美元符號($亦鳞,PHP語言變量中需要)馍忽。

注意棒坏,變量名和等號之間不能有空格,同時變量的名稱必須遵守以下規(guī)則:

1.命名只能使用英文字母遭笋,數(shù)字和下劃線坝冕,首個字符不能以數(shù)字開頭。

2.中間不能有空格瓦呼,可以使用下劃線_喂窟。

3.不能使用標(biāo)點符號。

4. 不能使用bash里的關(guān)鍵字(可以使用help命令保留關(guān)鍵字)


使用變量


使用一個定義過的變量央串,只需要在變量名前加 $ 符號即可磨澡,例如

name="abc"
echo $name
echo ${name}

變量名外面的花括號是可選的,加花括號是為了幫助解釋器識別變量邊界

已定義的變量可以重新定義蹋辅,如

name="abc"
echo $name
name="efg"
echo $name

這樣寫是合法的钱贯,要注意第二次賦值的時候不用在變量名前加"$"符號挫掏,使用變量才加$符


只讀變量


使用readonly命令可以將變量定義為只讀變量侦另,只讀變量的值不能被改變。


刪除變量


使用 unset 命令可以刪除變量尉共。語法:

unset variable_name

變量被刪除后不可再次使用褒傅。unset 不能刪除只讀變量


變量類型

運(yùn)行shell時,會同時存在三種變量:

1.局部變量 局部變量在腳本或命令中定義袄友,僅在當(dāng)前shell實例中有效殿托,其他shell啟動的程序不能訪問局部變量。

2.環(huán)境變量 所有的程序剧蚣,包括shell啟動的程序支竹,都能訪問環(huán)境變量,有些程序需要環(huán)境變量來保證其正常運(yùn)行鸠按。必要的時候shell腳本也可以定義環(huán)境變量礼搁。

3.shell變量 shell變量是由shell程序設(shè)置的特殊變量。shell變量中有一部分是環(huán)境變量目尖,有一部分是局部變量馒吴,這些變量保證了shell的正常運(yùn)行


Shell字符串


字符串是shell編程中最常用最有用的數(shù)據(jù)類型,字符串可使用單引號瑟曲,也可以使用雙引號饮戳,也可以不用引號。

單引號

單引號字符串的限制:

1.單引號里的任何字符都會原樣輸出洞拨,單引號字符中的變量是無效的;

2.單引號字符串中不能出現(xiàn)單獨一個的單引號扯罐,即使對單引號使用轉(zhuǎn)義符也不行,但可成對出現(xiàn)作為字符串拼接使用烦衣。

雙引號

雙引號的優(yōu)點:

1.雙引號可以有變量

2.雙引號可以出現(xiàn)轉(zhuǎn)義字符

反引號? " ` ` "

將反引號內(nèi)的字符當(dāng)做Shell命令來執(zhí)行歹河,返回值是命令的執(zhí)行結(jié)果齿椅,起到的是一個命令的替換作用。



Shell數(shù)組

bash支持一維數(shù)組(不支持多維數(shù)組)启泣,并且沒有限定數(shù)組的大小涣脚。

類似于C語言,數(shù)組元素的下標(biāo)由0開始編號寥茫。獲取數(shù)組中的元素要利用下標(biāo)遣蚀,下標(biāo)可以是整數(shù)或算數(shù)表達(dá)式,其值應(yīng)大于0或等于0纱耻。

定義數(shù)組

在Shell中芭梯,用括號來表示數(shù)組,數(shù)組元素用 空格 符號來分割開弄喘。

數(shù)組的名稱就是代表第一個數(shù)組里下標(biāo)為0的值玖喘。

讀取數(shù)組

讀取數(shù)組元素的一般格式是:

${數(shù)組名[下標(biāo)]}

使用@符號可以獲取數(shù)組中所有的元素

echo ${數(shù)組名[@]}

獲取數(shù)組的長度

獲取數(shù)組的長度與獲取字符的長度方法相同,例如

length=${#數(shù)組名[@]}? ? #獲取數(shù)組元素的個數(shù) 或
length=${#數(shù)組名[*]}
lengthn=${#數(shù)組名[n]}? ? ? ? ? #取得每個元素的長度


Shell 注釋

以#開頭的行就是注釋蘑志,會被解釋器忽略累奈。

通過每一行加一個#號設(shè)置多行注釋

多行注釋

把要注釋的代碼用一對花括號括起來,定義成一個函數(shù)急但,這塊代碼就不會執(zhí)行澎媒,達(dá)到了和注釋一樣的效果。

:<<EOF
注釋內(nèi)容.......
注釋內(nèi)容.......
EOF

也可以使用其他符號

:<<!
注釋內(nèi)容波桩。戒努。。镐躲。储玫。
!
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市萤皂,隨后出現(xiàn)的幾起案子撒穷,更是在濱河造成了極大的恐慌,老刑警劉巖敌蚜,帶你破解...
    沈念sama閱讀 217,907評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件桥滨,死亡現(xiàn)場離奇詭異,居然都是意外死亡弛车,警方通過查閱死者的電腦和手機(jī)齐媒,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,987評論 3 395
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來纷跛,“玉大人喻括,你說我怎么就攤上這事∑兜欤” “怎么了唬血?”我有些...
    開封第一講書人閱讀 164,298評論 0 354
  • 文/不壞的土叔 我叫張陵望蜡,是天一觀的道長。 經(jīng)常有香客問我拷恨,道長脖律,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,586評論 1 293
  • 正文 為了忘掉前任腕侄,我火速辦了婚禮小泉,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘冕杠。我一直安慰自己微姊,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 67,633評論 6 392
  • 文/花漫 我一把揭開白布分预。 她就那樣靜靜地躺著兢交,像睡著了一般。 火紅的嫁衣襯著肌膚如雪笼痹。 梳的紋絲不亂的頭發(fā)上配喳,一...
    開封第一講書人閱讀 51,488評論 1 302
  • 那天,我揣著相機(jī)與錄音与倡,去河邊找鬼界逛。 笑死昆稿,一個胖子當(dāng)著我的面吹牛纺座,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播溉潭,決...
    沈念sama閱讀 40,275評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼净响,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了喳瓣?” 一聲冷哼從身側(cè)響起馋贤,我...
    開封第一講書人閱讀 39,176評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎畏陕,沒想到半個月后配乓,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,619評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡惠毁,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,819評論 3 336
  • 正文 我和宋清朗相戀三年犹芹,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片鞠绰。...
    茶點故事閱讀 39,932評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡腰埂,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出蜈膨,到底是詐尸還是另有隱情屿笼,我是刑警寧澤牺荠,帶...
    沈念sama閱讀 35,655評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站驴一,受9級特大地震影響休雌,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜肝断,卻給世界環(huán)境...
    茶點故事閱讀 41,265評論 3 329
  • 文/蒙蒙 一挑辆、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧孝情,春花似錦鱼蝉、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,871評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至羔挡,卻和暖如春洁奈,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背绞灼。 一陣腳步聲響...
    開封第一講書人閱讀 32,994評論 1 269
  • 我被黑心中介騙來泰國打工利术, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人低矮。 一個月前我還...
    沈念sama閱讀 48,095評論 3 370
  • 正文 我出身青樓印叁,卻偏偏與公主長得像,于是被迫代替她去往敵國和親军掂。 傳聞我的和親對象是個殘疾皇子轮蜕,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,884評論 2 354

推薦閱讀更多精彩內(nèi)容

  • Shell是一個用C語言編寫的程序,它是用戶使用Linux的橋梁蝗锥。Shell既是一種命令語言跃洛,又是一種程序設(shè)計語言...
    CircusJonathan閱讀 1,424評論 0 1
  • 定義變量時,變量名不加美元符號($终议,PHP語言中變量需要)汇竭,如: your_name="runoob.com" 注...
    Joyner2018閱讀 251評論 0 0
  • Shell 變量 定義變量時陆馁,變量名不加美元符號($找颓,PHP語言中變量需要),如: your_name="runo...
    好看的羊兒閱讀 576評論 0 0
  • Shell 變量 定義變量 定義變量時叮贩,變量名不加美元符號($)击狮,如:your_name="w3cschool.c...
    起源矢量閱讀 348評論 1 18
  • Shell 變量 定義變量時佛析,變量名不加美元符號($,PHP語言中變量需要),如:var1="hello worl...
    檸檬的眼淚是酸的閱讀 532評論 0 0