shell腳本需要掌握的內(nèi)容

shell腳本需要掌握的內(nèi)容

主要標(biāo)識(shí)符

  1. #!/bin/sh 或者 #!/bin/bash 表示解釋此腳本的Shell程序

變量

  1. 變量命名(規(guī)則不多說(shuō)了伪窖,和普通語(yǔ)言沒(méi)有太大的差別,就是不要和關(guān)鍵字沖突)

  2. 使用變量苍姜,需要在變量前加 '$' 符號(hào),為了更加有效的區(qū)分變量可以在變量的前后添加大括號(hào)'{' 和 ‘}’剂桥。比如 echo "hello $nameA"妻柒,如果變量是name的話這句話就會(huì)識(shí)別為nameA為變量封恰,所以可以修改為echo "hello ${name}A"矮烹。

  3. readonly變量

name="hello"
readonly name
  1. delete變量
unset name

不能刪除 只讀變量

字符串

  1. 單引號(hào)(用法限制很多):原樣輸出越庇,變量無(wú)效;里面的單引號(hào)用轉(zhuǎn)義字符也無(wú)效奉狈;

  2. 雙引號(hào)(用法不同:可以用變量卤唉;可以有轉(zhuǎn)義字符

  3. 不用引號(hào)(習(xí)慣使用雙引號(hào)就行)

  4. 拼接字符串:不需要任何‘+’符號(hào)

  5. 字符串長(zhǎng)度:var="1234" echo ${#var}

  6. 截取字符串:var="0123456 echo ${var:1:3} 輸出為 123(從1開(kāi)始截取3個(gè)字符)

數(shù)組

直接使用括號(hào) ‘(’ ')' 表示,元素用空格分開(kāi)

var_array=(value1 value2 value3)

或者使用:
var_array[0]= ; var_array[3]=; var_array[n]=;

使用 '@'或者‘’ 訪問(wèn)所有元素 ${var_array[*]} , ${var_array[@]}

參數(shù)的使用

參數(shù)在腳本的使用中是非常重要的內(nèi)容

  1. $# 表示參數(shù)的個(gè)數(shù)

  2. $* 所有的參數(shù)按照 $1 $2 $3 組合起來(lái)

  3. $$ 腳本運(yùn)行的當(dāng)前進(jìn)程ID

  4. $n 表示第n個(gè)參數(shù)(從1開(kāi)始)

運(yùn)算

算術(shù)運(yùn)算

  1. 使用表達(dá)式 expr 來(lái)計(jì)算結(jié)果:其中要用 ' ' 反引號(hào)包圍仁期,如 `expr 1 + 1` `,其中數(shù)字和運(yùn)算符之間要用空格隔開(kāi)桑驱。

    支持加法+ 減法 - 乘法 \* 除法 \ mod % 相等[ $a == $b ] 不相當(dāng) [ $a != $b ]

  2. 關(guān)系運(yùn)算:檢測(cè)兩個(gè)數(shù)之間的關(guān)系

    -eq 等于 -ne 不等于 -gt 大于 -lt 小于 -ge 大于等于 -le 小于等于

  3. 布爾運(yùn)算

    !-o-a

  4. 邏輯運(yùn)算符

    邏輯AND && 邏輯OR ||

浮點(diǎn)數(shù)運(yùn)算

字符串運(yùn)算

  1. 檢測(cè)字符串是否相等 = 比如 [ $a = $b ]
  2. 檢測(cè)字符串不相同 != 比如 [ $a != $b ]
  3. 檢測(cè)長(zhǎng)度是否為0 -z 為0 返回true -n 非0返回true
  4. 檢查字符串s是否為空, [ $str ] 不為空返回true

文件測(cè)試運(yùn)算符

方法/函數(shù)

function funname()
{
    // visit the first parameter
    $1
    // visit the second parameter
    $2
}

// call the function
funname $p1 $p2

程序邏輯

判斷邏輯

  1. if
if condition
then
    command1 
    command2
    ...
    commandN 
fi
  1. if else
if condition
then
    command1 
    command2
    ...
    commandN
else
    command
fi
  1. if else if else
if condition1
then
    command1
elif condition2 
then 
    command2
else
    commandN
fi

循環(huán)邏輯

  1. for 循環(huán)
for var in item1 itme2....
do

done
  1. while
while condition
do


done

特殊總結(jié)使用

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末跛蛋,一起剝皮案震驚了整個(gè)濱河市熬的,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌赊级,老刑警劉巖押框,帶你破解...
    沈念sama閱讀 219,539評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異理逊,居然都是意外死亡橡伞,警方通過(guò)查閱死者的電腦和手機(jī)盒揉,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,594評(píng)論 3 396
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)兑徘,“玉大人刚盈,你說(shuō)我怎么就攤上這事」夷裕” “怎么了藕漱?”我有些...
    開(kāi)封第一講書(shū)人閱讀 165,871評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)最域。 經(jīng)常有香客問(wèn)我谴分,道長(zhǎng),這世上最難降的妖魔是什么镀脂? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,963評(píng)論 1 295
  • 正文 為了忘掉前任牺蹄,我火速辦了婚禮,結(jié)果婚禮上薄翅,老公的妹妹穿的比我還像新娘沙兰。我一直安慰自己,他們只是感情好翘魄,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,984評(píng)論 6 393
  • 文/花漫 我一把揭開(kāi)白布鼎天。 她就那樣靜靜地躺著,像睡著了一般暑竟。 火紅的嫁衣襯著肌膚如雪斋射。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 51,763評(píng)論 1 307
  • 那天但荤,我揣著相機(jī)與錄音罗岖,去河邊找鬼。 笑死腹躁,一個(gè)胖子當(dāng)著我的面吹牛桑包,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播纺非,決...
    沈念sama閱讀 40,468評(píng)論 3 420
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼哑了,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了烧颖?” 一聲冷哼從身側(cè)響起弱左,我...
    開(kāi)封第一講書(shū)人閱讀 39,357評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎炕淮,沒(méi)想到半個(gè)月后拆火,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,850評(píng)論 1 317
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,002評(píng)論 3 338
  • 正文 我和宋清朗相戀三年榜掌,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了优妙。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,144評(píng)論 1 351
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡憎账,死狀恐怖套硼,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情胞皱,我是刑警寧澤邪意,帶...
    沈念sama閱讀 35,823評(píng)論 5 346
  • 正文 年R本政府宣布,位于F島的核電站反砌,受9級(jí)特大地震影響雾鬼,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜宴树,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,483評(píng)論 3 331
  • 文/蒙蒙 一策菜、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧酒贬,春花似錦又憨、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 32,026評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至零如,卻和暖如春躏将,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背考蕾。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,150評(píng)論 1 272
  • 我被黑心中介騙來(lái)泰國(guó)打工祸憋, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留闯捎,地道東北人物赶。 一個(gè)月前我還...
    沈念sama閱讀 48,415評(píng)論 3 373
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親喜命。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,092評(píng)論 2 355

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

  • .bat腳本基本命令語(yǔ)法 目錄 批處理的常見(jiàn)命令(未列舉的命令還比較多河劝,請(qǐng)查閱幫助信息) 1壁榕、REM 和 :: 2...
    慶慶慶慶慶閱讀 8,102評(píng)論 1 19
  • 第2章 基本語(yǔ)法 2.1 概述 基本句法和變量 語(yǔ)句 JavaScript程序的執(zhí)行單位為行(line),也就是一...
    悟名先生閱讀 4,150評(píng)論 0 13
  • 官網(wǎng) 中文版本 好的網(wǎng)站 Content-type: text/htmlBASH Section: User ...
    不排版閱讀 4,392評(píng)論 0 5
  • 最近幾天一直琢磨著要寫(xiě)這文章赎瞎,但不知道應(yīng)該如何敘述那縈繞在我心頭的思念牌里。那是一場(chǎng)還是小姑娘時(shí)候的旅行。 不知為什么...
    在水一方含閱讀 338評(píng)論 1 4
  • 2017.6.13 今天還是淅淅瀝瀝的下著小雨,可是感受卻大不相同了牡辽。輕風(fēng)卷走了昨天所有的霧霾喳篇,今天的空氣格外的...
    朱叉叉閱讀 361評(píng)論 0 0