常見腳本錯誤類型

隨著腳本變得越來越復(fù)雜我衬,當(dāng)腳本運行錯誤,執(zhí)行結(jié)果出人意料的時候, 我們就應(yīng)該查看一下原因了饰恕。
1.語法錯誤
一個普通的錯誤類型是語法挠羔。語法錯誤涉及到一些shell 語法元素的拼寫錯誤。大多數(shù)情況下埋嵌,這類錯誤會導(dǎo)致shell 拒絕執(zhí)行此腳本破加。
a.丟失引號
b.丟失或意外的標(biāo)記
c.預(yù)料不到的展開
2.邏輯錯誤
不同于語法錯誤,邏輯錯誤不會阻止腳本執(zhí)行雹嗦。雖然腳本會正常運行范舀,但是它不會產(chǎn)生期
望的結(jié)果,歸咎于腳本的邏輯問題了罪。
a.不正確的條件表達(dá)式锭环。很容易編寫一個錯誤的if/then/else 語句,并且執(zhí)行錯誤的邏輯泊藕。有時候邏輯會被顛倒辅辩,或者是邏輯結(jié)構(gòu)不完整。
b.“超出一個值”錯誤娃圆。當(dāng)編寫帶有計數(shù)器的循環(huán)語句的時候玫锋,為了計數(shù)在恰當(dāng)?shù)狞c結(jié)束,循環(huán)語句可能要求從0 開始計數(shù)讼呢,而不是從1 開始撩鹿,這有可能會被忽視。這些類型的錯誤要不導(dǎo)致循環(huán)計數(shù)太多悦屏,而“超出范圍”节沦,要不就是過早的結(jié)束了一次迭代,從而錯過了最后一次迭代循
c.意外情況础爬。大多數(shù)邏輯錯誤來自于程序碰到了程序員沒有預(yù)見到的數(shù)據(jù)或者情況散劫。這也可以包括出乎意料的展開,比如說一個包含嵌入式空格的文件名展開成多個命令參數(shù)而不是單個的文件名幕帆。

因此,當(dāng)編程的時候赖条,驗證假設(shè)非常重要失乾。這意味著要仔細(xì)得計算腳本所使用的程序和命令的退出狀態(tài)常熙。首先檢查一個名字,看看它是否為一個真正存在的目錄碱茁,另一個是cd
命令是否執(zhí)行成功裸卫。如果任一種情況失敗,就會發(fā)送一個錯誤說明信息到標(biāo)準(zhǔn)錯誤纽竣,然后腳本終止執(zhí)行墓贿。

另外,在各類軟件開發(fā)中(包括腳本)蜓氨,測試是一個重要的環(huán)節(jié)聋袋。通過執(zhí)行每一個測試條件,就達(dá)到了一個良好的測試覆蓋率穴吹。如dir name 包含一個已經(jīng)存在的目錄的名字
dir name 包含一個不存在的目錄的名字dir name 為空幽勒。測試也是一個時間的函數(shù)。不是每一個腳本功能都需要做大量的測試港令。問題關(guān)鍵是確定什么功能是最重要的啥容。因為測試若發(fā)生故障會存在如此潛在的破壞性,所以代碼片在設(shè)計和測試段期間都應(yīng)值得仔細(xì)推敲顷霹。

如果測試暴露了腳本中的一個問題咪惠,那下一步就是調(diào)試了。找到問題區(qū)域淋淀,追蹤遥昧,執(zhí)行時檢查數(shù)值,完善腳本绅喉。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末渠鸽,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子柴罐,更是在濱河造成了極大的恐慌徽缚,老刑警劉巖,帶你破解...
    沈念sama閱讀 217,406評論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件革屠,死亡現(xiàn)場離奇詭異凿试,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)似芝,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,732評論 3 393
  • 文/潘曉璐 我一進(jìn)店門那婉,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人党瓮,你說我怎么就攤上這事详炬。” “怎么了寞奸?”我有些...
    開封第一講書人閱讀 163,711評論 0 353
  • 文/不壞的土叔 我叫張陵呛谜,是天一觀的道長婿奔。 經(jīng)常有香客問我牵囤,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,380評論 1 293
  • 正文 為了忘掉前任歇终,我火速辦了婚禮帅腌,結(jié)果婚禮上枉圃,老公的妹妹穿的比我還像新娘抽诉。我一直安慰自己,他們只是感情好妒牙,可當(dāng)我...
    茶點故事閱讀 67,432評論 6 392
  • 文/花漫 我一把揭開白布彼哼。 她就那樣靜靜地躺著,像睡著了一般单旁。 火紅的嫁衣襯著肌膚如雪沪羔。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,301評論 1 301
  • 那天象浑,我揣著相機(jī)與錄音蔫饰,去河邊找鬼。 笑死愉豺,一個胖子當(dāng)著我的面吹牛篓吁,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播蚪拦,決...
    沈念sama閱讀 40,145評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼杖剪,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了驰贷?” 一聲冷哼從身側(cè)響起盛嘿,我...
    開封第一講書人閱讀 39,008評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎括袒,沒想到半個月后次兆,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,443評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡锹锰,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,649評論 3 334
  • 正文 我和宋清朗相戀三年芥炭,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片恃慧。...
    茶點故事閱讀 39,795評論 1 347
  • 序言:一個原本活蹦亂跳的男人離奇死亡园蝠,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出痢士,到底是詐尸還是另有隱情彪薛,我是刑警寧澤,帶...
    沈念sama閱讀 35,501評論 5 345
  • 正文 年R本政府宣布,位于F島的核電站陪汽,受9級特大地震影響训唱,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜挚冤,卻給世界環(huán)境...
    茶點故事閱讀 41,119評論 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望赞庶。 院中可真熱鬧训挡,春花似錦、人聲如沸歧强。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,731評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽摊册。三九已至肤京,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間茅特,已是汗流浹背忘分。 一陣腳步聲響...
    開封第一講書人閱讀 32,865評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留白修,地道東北人妒峦。 一個月前我還...
    沈念sama閱讀 47,899評論 2 370
  • 正文 我出身青樓,卻偏偏與公主長得像兵睛,于是被迫代替她去往敵國和親肯骇。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,724評論 2 354

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