Linux學習日記——shell scripts

shell scripts其實就是在用一系列有序的shell命令和shell scripts語法編寫成的在shell環(huán)境下運行的程序。它的寫法和命令幾乎沒有差別,只是它可以把很多命令放在一起一次執(zhí)行碉哑,而不必一次一次的下達命令蒙揣。你還可以寫一些定時運行的腳本自動幫你做你可能會重復做的操作,總之在很多時候有很大便利柬采。但也有缺點细移,就是系統(tǒng)管理完全夠用但是數(shù)值計算就不是shell scripts所擅長的了搏予。

如果寫過C程序的話,那么shell簡直不成問題弧轧,因為它的語法跟C太像了雪侥。

shell scripts的執(zhí)行方式

用vim編輯好腳本文件后,有幾種執(zhí)行方式:

直接命令下達:這需要文件有讀和執(zhí)行的權限(rx)精绎。輸入該文件的絕對路徑或相對路徑執(zhí)行速缨;把該文件放在PATH 指定目錄,像ls代乃、cat等命令一樣可以在任意工作目錄下直接輸入檔名執(zhí)行旬牲。

以bash程序執(zhí)行:用指令 【sh ? ? 腳本檔名】或者【bash? 腳本檔名】執(zhí)行,一般用前者搁吓。

還有一種執(zhí)行方式 ——source命令? 原茅,它與sh命令的區(qū)別就是:source命令執(zhí)行的環(huán)境是父程序,sh的執(zhí)行環(huán)境是子程序堕仔,也就是說sh新開了一個bash來執(zhí)行你的scripts擂橘。例如你的程序里有個變量temp,并且賦了值摩骨,你在bash下echo這個變量是不存在的通贞;但是如果用source執(zhí)行,你就能echo出temp的值仿吞。(大概好比一個全局一個局部滑频,這樣可以理解吧捡偏。)

環(huán)境變量

因為scripts里用的也是shell命令唤冈,所以它需要聲明環(huán)境變量,說明它呼叫的功能在哪里找得到银伟,類似于C的頭文件你虹。當然你也可以寫一些函數(shù)放在一個文件里,把這個文件加在環(huán)境變量的聲明里,這樣你就可以在你的腳本里直接用你自己的函數(shù)了肃叶。

這個環(huán)境變量一定在腳本文件的所有命令和程序內容之前聲明蕴茴。格式大概如下:


#被注釋的部分,僅供程序功能董饰、版本蒿褂、時間等的說明,便于以后查錯更改

PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin #環(huán)境變量

export PATH #全局聲明

卒暂。啄栓。。程序部分也祠。昙楚。。诈嘿。


判斷

1堪旧、test指令

這個指令可以測試文檔的是否存在、類型奖亚、權限等淳梦,還可以判斷數(shù)值大小、判定字符串等昔字。

test命令并不會在屏幕上顯示結果谭跨,我們可以結合&&、||來顯示李滴,如:


2螃宙、判斷符號 [ ]

這個中括號的功能也是判斷,例如判斷變量是否為空:


但是注意:中括號內每個元素都要用空格隔開

3所坯、shell scripts的默認變量

$0 $1 $2 $3...這些是系統(tǒng)默認的變量谆扎,跟在腳本文件后作為參數(shù)

還有這幾個

“$@”和“$*”兩個稍微有點差別,但是一般記住前者就好芹助。

4堂湖、判斷式

? ?? 1) ?? if ...then...elif...then..else...fi ? ?

? ? ? 2)case....esac

這種把各個變量的情況羅列出來,再給出處理過程状土,是不是跟C語言一樣无蜂。

?5、函數(shù)功能

可以把你重復的一系列操作寫在一個個函數(shù)里蒙谓,這樣每次就可以直接調用函數(shù)斥季,減少工作量。

要注意的是這些函數(shù)一定寫在主體的前面,不然調用時會找不到酣倾。當然你做成一個函數(shù)庫寫在環(huán)境變量里也行舵揭。


循環(huán)

1、while...do..done

2躁锡、until...do...done

3午绳、 for...do...done

1)這種寫法變量var的值會依次為con1,con2,con3.....

如果con1,con2...是連續(xù)整數(shù)的話,可以用"$(seq m n)"替代映之,seq表示連續(xù)的從m到n拦焚。n大于等于m。

2)第二種寫法杠输,C語言一定不陌生耕漱,只是注意一細節(jié),兩個括號以及變量的表示


debug


?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末抬伺,一起剝皮案震驚了整個濱河市螟够,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌峡钓,老刑警劉巖妓笙,帶你破解...
    沈念sama閱讀 216,997評論 6 502
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異能岩,居然都是意外死亡寞宫,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,603評論 3 392
  • 文/潘曉璐 我一進店門拉鹃,熙熙樓的掌柜王于貴愁眉苦臉地迎上來辈赋,“玉大人,你說我怎么就攤上這事膏燕≡壳” “怎么了?”我有些...
    開封第一講書人閱讀 163,359評論 0 353
  • 文/不壞的土叔 我叫張陵坝辫,是天一觀的道長篷就。 經常有香客問我,道長近忙,這世上最難降的妖魔是什么竭业? 我笑而不...
    開封第一講書人閱讀 58,309評論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮及舍,結果婚禮上未辆,老公的妹妹穿的比我還像新娘。我一直安慰自己锯玛,他們只是感情好咐柜,可當我...
    茶點故事閱讀 67,346評論 6 390
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般炕桨。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上肯腕,一...
    開封第一講書人閱讀 51,258評論 1 300
  • 那天献宫,我揣著相機與錄音,去河邊找鬼实撒。 笑死姊途,一個胖子當著我的面吹牛,可吹牛的內容都是我干的知态。 我是一名探鬼主播捷兰,決...
    沈念sama閱讀 40,122評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼负敏!你這毒婦竟也來了贡茅?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 38,970評論 0 275
  • 序言:老撾萬榮一對情侶失蹤其做,失蹤者是張志新(化名)和其女友劉穎顶考,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體妖泄,經...
    沈念sama閱讀 45,403評論 1 313
  • 正文 獨居荒郊野嶺守林人離奇死亡驹沿,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 37,596評論 3 334
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了蹈胡。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片渊季。...
    茶點故事閱讀 39,769評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖罚渐,靈堂內的尸體忽然破棺而出却汉,到底是詐尸還是另有隱情,我是刑警寧澤荷并,帶...
    沈念sama閱讀 35,464評論 5 344
  • 正文 年R本政府宣布病涨,位于F島的核電站,受9級特大地震影響璧坟,放射性物質發(fā)生泄漏既穆。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,075評論 3 327
  • 文/蒙蒙 一雀鹃、第九天 我趴在偏房一處隱蔽的房頂上張望幻工。 院中可真熱鬧,春花似錦黎茎、人聲如沸囊颅。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,705評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽踢代。三九已至盲憎,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間胳挎,已是汗流浹背饼疙。 一陣腳步聲響...
    開封第一講書人閱讀 32,848評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留慕爬,地道東北人窑眯。 一個月前我還...
    沈念sama閱讀 47,831評論 2 370
  • 正文 我出身青樓,卻偏偏與公主長得像医窿,于是被迫代替她去往敵國和親磅甩。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 44,678評論 2 354

推薦閱讀更多精彩內容