本書是以Linux下的bash為對象講解shell腳本編程的入門書。全書從shell的概念入手,內(nèi)容豐富、結(jié)構(gòu)清晰,不僅講解了shell的基本語法和命令,還通過各種各樣的示例介紹了如何編寫實(shí)用的shell腳本,shell腳本的測試和調(diào)試,以及shell腳本編程中容易出錯的關(guān)鍵點(diǎn)。通過閱讀本書,讀者能夠輕松地編寫shell腳本,更加靈活地使用UNIX和Linux。
從基礎(chǔ)到應(yīng)用,細(xì)致講解shell腳本的基本語法和編程技巧:
1.系統(tǒng)梳理shell特有語法
2.詳細(xì)講解實(shí)用腳本代碼示例
3.深入揭示測試和調(diào)試shell腳本的秘訣
4.基于Linux/bash講解,同時適用于CentOS和Ubuntu
5.本書示例代碼、shell腳本文件均可下載
如果你具備Linux基本操作技能,想要學(xué)習(xí)shell腳本編程但不知該如何下手
如果你剛開始學(xué)習(xí)shell腳本,在寫代碼時屢屢踩坑,又檢查不出語法錯誤
如果你已經(jīng)掌握shell腳本的基礎(chǔ)知識,但寫不出健壯的腳本,調(diào)試起來又很麻煩
如果你具有其他語言編程經(jīng)驗(yàn),但無法適應(yīng)shell腳本編程
那么,不妨讀一讀這本書,
一步步學(xué)會編寫實(shí)用、易用的shell腳本!
三宅英明(作者)
Web應(yīng)用程序員,具有多年編程經(jīng)驗(yàn),在程序開發(fā)和運(yùn)維中經(jīng)常使用Linux和shell腳本,生活中偏好Ubuntu。著有《新Linux教科書》(合著)等。
劉斌(譯者)
軟件工程師,專注于后臺開發(fā)、運(yùn)維技術(shù)和云計(jì)算技術(shù),崇尚不可變基礎(chǔ)設(shè)施和基礎(chǔ)設(shè)施即代碼。
Chapter 01 關(guān)于shell 1
1.1什么是shell 2
1.2為什么使用shell 4
1.3執(zhí)行命令的示例——ls命令 6
Chapter 02 關(guān)于shell腳本 9
2.1 什么是shell腳本 10
2.2 為什么要使用shell腳本 12
2.3 編程語言與shell 14
Chapter 03 shell腳本的基礎(chǔ)知識 17
3.1 shell腳本的基本結(jié)構(gòu) 18
3.2 注釋 21
3.3 shell腳本的執(zhí)行方法 23
Chapter 04 變量 27
4.1 什么是變量 28
4.2 環(huán)境變量 31
4.3 特殊的shell變量 35
4.4 位置參數(shù) 40
4.5 特殊參數(shù) 42
4.6 使用declare聲明變量 45
4.7 數(shù)組 48
4.8 關(guān)聯(lián)數(shù)組 54
Chapter 05 展開和引用 59
5.1 路徑展開 60
5.2 大括號展開 64
5.3 波浪線展開 65
5.4 參數(shù)展開 66
5.5 命令替換 76
5.6 算術(shù)表達(dá)式求值 80
5.7 算術(shù)表達(dá)式展開 82
5.8 進(jìn)程替換 83
5.9 歷史記錄展開 84
5.10 引用 86
Chapter 06 控制結(jié)構(gòu) 91
6.1 if 92
6.2 &&和|| 102
6.3 [[ ]] 104
6.4 for 109
6.5 case 112
6.6 while和until 114
Chapter 07 重定向和管道 117
7.1 標(biāo)準(zhǔn)輸入和標(biāo)準(zhǔn)輸出 118
7.2 重定向 119
7.3 here document 130
7.4 管道 134
7.5 命令分組 136
Chapter 08 函數(shù) 141
8.1 定義函數(shù) 142
8.2 變量的作用域 144
8.3 函數(shù)和位置參數(shù) 149
8.4 函數(shù)的退出狀態(tài)碼 .....152
Chapter 09 內(nèi)置命令 155
9.1 :命令 156
9.2 echo命令 156
9.3 printf命令 159
9.4 pwd命令和cd命令 161
9.5 command命令和builtin命令 163
9.6 type命令 165
9.7 shift命令 168
9.8 set命令 169
9.9 unset命令 173
9.10 read命令 175
9.11 trap命令 179
9.12 wait命令 183
9.13 exec命令 184
9.14 eval命令 187
Chapter 10 正則表達(dá)式和字符串操作 191
10.1 什么是正則表達(dá)式 192
10.2 基本正則表達(dá)式和擴(kuò)展正則表達(dá)式 192
10.3 詳解grep命令 196
10.4 sed命令 203
Chapter 11 shell腳本的執(zhí)行方法 209
11.1 如何執(zhí)行shell腳本 210
11.2 shebang的作用 211
11.3 命令搜索路徑 212
11.4 shell腳本的權(quán)限 215
11.5 source命令 217
Chapter 12 通過示例學(xué)習(xí)shell腳本 221
12.1 示例1:計(jì)算數(shù)值合計(jì)值 222
12.2 示例2:計(jì)算數(shù)值列表的合計(jì)值 227
12.3 示例3:輸出指定用戶的信息 229
12.4 示例4:對正則表達(dá)式中的元字符進(jìn)行轉(zhuǎn)義 235
12.5 示例5:根據(jù)文件格式解壓縮 238
12.6 示例6:創(chuàng)建指定路徑的文件以及中間目錄 244
12.7 示例7:將相對路徑轉(zhuǎn)換為絕對路徑 248
12.8 示例8:在多個文件中查找字符串 253
12.9 示例9:使用getopt解析命令行選項(xiàng) 260
12.10 示例10:使用getopts解析命令行選項(xiàng) 271
12.11 示例11:在命令行中管理回收站 280
Chapter 13 shell腳本的應(yīng)用場景 305
13.1 將shell腳本用作命令 306
13.2 cron批處理 308
13.3 命令補(bǔ)全 309
13.4 為trash.sh編寫補(bǔ)全文件 321
13.5 讀取補(bǔ)全文件 327
13.6 bash-completion軟件包 329
Chapter 14 shell腳本的測試和調(diào)試 331
14.1 靜態(tài)代碼解析 332
14.2 使用Bats進(jìn)行測試 337
14.3 調(diào)試 343
14.4 shell腳本中的常見錯誤 355
Chapter 15 如何編寫易用的shell腳本 363
15.1 什么是易于使用的shell腳本 364
15.2 什么是易于閱讀的shell腳本 365
參考文獻(xiàn) 373