本書是以Linux下的bash為對象講解shell腳本編程的入門書。全書從shell的概念入手,內容豐富、結構清晰,不僅講解了shell的基本語法和命令,還通過各種各樣的示例介紹了如何編寫實用的shell腳本,shell腳本的測試和調試,以及shell腳本編程中容易出錯的關鍵點。通過閱讀本書,讀者能夠輕松地編寫shell腳本,更加靈活地使用UNIX和Linux。
從基礎到應用,細致講解shell腳本的基本語法和編程技巧:
1.系統梳理shell特有語法
2.詳細講解實用腳本代碼示例
3.深入揭示測試和調試shell腳本的秘訣
4.基于Linux/bash講解,同時適用于CentOS和Ubuntu
5.本書示例代碼、shell腳本文件均可下載
如果你具備Linux基本操作技能,想要學習shell腳本編程但不知該如何下手
如果你剛開始學習shell腳本,在寫代碼時屢屢踩坑,又檢查不出語法錯誤
如果你已經掌握shell腳本的基礎知識,但寫不出健壯的腳本,調試起來又很麻煩
如果你具有其他語言編程經驗,但無法適應shell腳本編程
那么,不妨讀一讀這本書,
一步步學會編寫實用、易用的shell腳本!
三宅英明(作者)
Web應用程序員,具有多年編程經驗,在程序開發(fā)和運維中經常使用Linux和shell腳本,生活中偏好Ubuntu。著有《新Linux教科書》(合著)等。
劉斌(譯者)
軟件工程師,專注于后臺開發(fā)、運維技術和云計算技術,崇尚不可變基礎設施和基礎設施即代碼。
Chapter 01 關于shell 1
1.1什么是shell 2
1.2為什么使用shell 4
1.3執(zhí)行命令的示例——ls命令 6
Chapter 02 關于shell腳本 9
2.1 什么是shell腳本 10
2.2 為什么要使用shell腳本 12
2.3 編程語言與shell 14
Chapter 03 shell腳本的基礎知識 17
3.1 shell腳本的基本結構 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 位置參數 40
4.5 特殊參數 42
4.6 使用declare聲明變量 45
4.7 數組 48
4.8 關聯數組 54
Chapter 05 展開和引用 59
5.1 路徑展開 60
5.2 大括號展開 64
5.3 波浪線展開 65
5.4 參數展開 66
5.5 命令替換 76
5.6 算術表達式求值 80
5.7 算術表達式展開 82
5.8 進程替換 83
5.9 歷史記錄展開 84
5.10 引用 86
Chapter 06 控制結構 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 標準輸入和標準輸出 118
7.2 重定向 119
7.3 here document 130
7.4 管道 134
7.5 命令分組 136
Chapter 08 函數 141
8.1 定義函數 142
8.2 變量的作用域 144
8.3 函數和位置參數 149
8.4 函數的退出狀態(tài)碼 .....152
Chapter 09 內置命令 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 正則表達式和字符串操作 191
10.1 什么是正則表達式 192
10.2 基本正則表達式和擴展正則表達式 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腳本的權限 215
11.5 source命令 217
Chapter 12 通過示例學習shell腳本 221
12.1 示例1:計算數值合計值 222
12.2 示例2:計算數值列表的合計值 227
12.3 示例3:輸出指定用戶的信息 229
12.4 示例4:對正則表達式中的元字符進行轉義 235
12.5 示例5:根據文件格式解壓縮 238
12.6 示例6:創(chuàng)建指定路徑的文件以及中間目錄 244
12.7 示例7:將相對路徑轉換為絕對路徑 248
12.8 示例8:在多個文件中查找字符串 253
12.9 示例9:使用getopt解析命令行選項 260
12.10 示例10:使用getopts解析命令行選項 271
12.11 示例11:在命令行中管理回收站 280
Chapter 13 shell腳本的應用場景 305
13.1 將shell腳本用作命令 306
13.2 cron批處理 308
13.3 命令補全 309
13.4 為trash.sh編寫補全文件 321
13.5 讀取補全文件 327
13.6 bash-completion軟件包 329
Chapter 14 shell腳本的測試和調試 331
14.1 靜態(tài)代碼解析 332
14.2 使用Bats進行測試 337
14.3 調試 343
14.4 shell腳本中的常見錯誤 355
Chapter 15 如何編寫易用的shell腳本 363
15.1 什么是易于使用的shell腳本 364
15.2 什么是易于閱讀的shell腳本 365
參考文獻 373