万本电子书0元读

万本电子书0元读

顶部广告

shell脚本基础教程电子书

从基础到应用,细致讲解shell脚本的基本语法和编程技巧: 1.系统梳理shell特有语法 2.详细讲解实用脚本代码示例 3.深揭示测试和调试shell脚本的秘诀 4.基于Linux/bash讲解,同时适用于CentOS和Ubuntu 5.本书示例代码、shell脚本文件均可下载 如果你具备Linux基本操作技能,想要学习shell脚本编程但不知该如何下手 如果你刚始学习shell脚本,在写代码时屡屡踩坑,又检查不出语法错误

售       价:¥

纸质售价:¥89.90购买纸书

27人正在读 | 0人评论 6.7

作       者:[日]三宅英明 著

出  版  社:人民邮电出版社有限公司

出版时间:2021-12-01

字       数:24.7万

所属分类: 科技 > 计算机/网络 > 软件系统

温馨提示:数字商品不支持退换货,不提供源文件,不支持导出打印

为你推荐

  • 读书简介
  • 目录
  • 累计评论(0条)
  • 读书简介
  • 目录
  • 累计评论(0条)
本书是以Linux下的bash为对象讲解shell脚本编程的门书。全书从shell的概念手,内容丰富、结构清晰,不仅讲解了shell的基本语法和命令,还通过各种各样的示例介绍了如何编写实用的shell脚本,shell脚本的测试和调试,以及shell脚本编程中容易出错的关键。通过阅读本书,读者能够轻松地编写shell脚本,更加灵活地使用UNIX和Linux。<br/>【推荐语】<br/>从基础到应用,细致讲解shell脚本的基本语法和编程技巧: 1.系统梳理shell特有语法 2.详细讲解实用脚本代码示例 3.深揭示测试和调试shell脚本的秘诀 4.基于Linux/bash讲解,同时适用于CentOS和Ubuntu 5.本书示例代码、shell脚本文件均可下载 如果你具备Linux基本操作技能,想要学习shell脚本编程但不知该如何下手 如果你刚始学习shell脚本,在写代码时屡屡踩坑,又检查不出语法错误 如果你已经掌握shell脚本的基础知识,但写不出健壮的脚本,调试起来又很麻烦 如果你具有其他语言编程经验,但无法适应shell脚本编程 那么,不妨读一读这本书, 一步步学会编写实用、易用的shell脚本!<br/>【作者】<br/>三宅英明(作者) Web应用程序员,具有多年编程经验,在程序发和运维中经常使用Linux和shell脚本,生活中偏好Ubuntu。著有《新Linux教科书》(合著)等。 刘斌(译者) 软件工程师,专注于后台发、运维技术和云计算技术,崇尚不可变基础设施和基础设施即代码。<br/>
目录展开

版权声明

前言

关于示例代码

说明

Chapter 01 关于 shell

1.1 什么是 shell

启动 shell

1.2 为什么使用 shell

shell 和 Linux 内核的分离

1.3 执行命令的示例——ls 命令

深入了解命令执行过程

Chapter 02 关于 shell 脚本

2.2 为什么要使用 shell 脚本

任务自动化的优点

shell 脚本的应用场景

shell 脚本的缺点

2.3 编程语言与 shell

Chapter 03 shell 脚本的基础知识

3.1 shell 脚本的基本结构

文件名和扩展名

文件结构

shell 脚本和换行

3.2 注释

注释掉命令

3.3 shell 脚本的执行方法

Chapter 04 变量

4.1 什么是变量

声明变量

引用变量

4.2 环境变量

什么是环境变量

设置环境变量——export 命令

4.3 特殊的 shell 变量

HOME

PWD

SHELL

BASH

BASH_VERSION

LINENO

LANG

PATH

IFS

4.4 位置参数

4.5 特殊参数

位置参数的个数——$#

命令退出时的状态码——$?

进程 ID——$$ 和 $!

4.6 使用 declare 声明变量

只读变量

整型变量

4.7 数组

访问数组元素

使用索引进行赋值

删除数组元素

访问所有元素

添加元素

获取元素的索引列表

4.8 关联数组

访问数组元素

为元素赋值

删除数组元素

访问所有元素

获取关联数组中键的列表

Chapter 05 展开和引用

5.1 路径展开

匹配任意字符——* 和 ?

匹配任意一个字符——[]、[!] 和 [^]

组合使用路径展开

使用路径展开时的注意事项

5.2 大括号展开

{字符串 1,字符串 2,字符串 3}

{ 开始值 .. 结束值 }

5.3 波浪线展开

5.4 参数展开

使用 :- 进行展开

使用 := 进行展开

使用 :? 进行展开

使用 :+ 进行展开

字符串截取

获取字符串长度

使用匹配模式进行截取

先替换再展开

5.5 命令替换

5.6 算术表达式求值

使用 (()) 的退出状态码

5.7 算术表达式展开

5.8 进程替换

5.9 历史记录展开

5.10 引用

使用 \ 进行引用

使用引号 ' 和 " 进行引用

Chapter 06 控制结构

6.1 if

if 语句的条件

test 命令——[

字符串比较

整数比较

文件属性判断

组合运算符

if 语句的注意事项

条件部分使用空格分隔

在条件部分的最后使用 ;(分号)分隔

特殊符号的引用

处理部分不能为空

6.2 && 和 ||

和 test 命令组合使用

6.3 [[ ]]

单词拆分

模式匹配

6.4 for

break 和 continue

6.5 case

6.6 while 和 until

Chapter 07 重定向和管道

7.1 标准输入和标准输出

7.2 重定向

输出的重定向

输入的重定向

noclobber 和输出的重定向

重定向和追加写入

统一标准输出和标准错误输出

/dev/null

重定向的注意事项

在不能使用空格的地方使用了空格

重定向目标文件和重定向源文件

关于重定向操作符的总结

7.3 here document

here string

7.4 管道

7.5 命令分组

Chapter 08 函数

8.1 定义函数

8.2 变量的作用域

在函数中调用其他函数的场景

8.3 函数和位置参数

8.4 函数的退出状态码

Chapter 09 内置命令

9.1 : 命令

9.2 echo 命令

9.3 printf 命令

9.4 pwd 命令和 cd 命令

pwd 命令

cd 命令

9.5 command 命令和 builtin 命令

9.6 type 命令

9.7 shift 命令

9.8 set 命令

9.9 unset 命令

9.10 read 命令

使用 read 命令时的注意事项

9.11 trap 命令

9.12 wait 命令

9.13 exec 命令

修改重定向的目标位置

9.14 eval 命令

Chapter 10 正则表达式和字符串操作

10.1 什么是正则表达式

10.2 基本正则表达式和扩展正则表达式

用于匹配字符的元字符

用于进行位置匹配的元字符

用于进行重复匹配的元字符

其他元字符

10.3 详解 grep 命令

与匹配模式相关的选项

-i 选项

-e 选项

-v 选项

与输出格式相关的选项

-n 选项

-H 选项和 -h 选项

-L 选项和 -l 选项

-o 选项

-q 选项

10.4 sed 命令

如何查找 /(分隔号)字符

sed 命令的选项

Chapter 11 shell 脚本的执行方法

11.1 如何执行 shell 脚本

另一种执行方式

11.2 shebang 的作用

11.3 命令搜索路径

添加命令搜索路径

11.4 shell 脚本的权限

11.5 source 命令

Chapter 12 通过示例学习 shell 脚本

12.1 示例 1:计算数值合计值

运行示例

脚本的文件名

处理所有参数

将错误信息重定向到标准输出

发生错误时的退出状态码

执行加法计算

输出合计值

12.2 示例 2:计算数值列表的合计值

运行示例

示例的实际应用

12.3 示例 3:输出指定用户的信息

运行示例

取出参数中指定用户所在行的内容

读取并输出各种信息

当用户不存在时的处理

处理包含特殊符号的字符串

12.4 示例 4:对正则表达式中的元字符进行转义

运行示例

什么是回溯引用

对扩展正则表达式中的元字符进行转义

12.5 示例 5:根据文件格式解压缩

运行示例

对输入参数执行错误处理

获取文件名

处理不同的文件类型

处理未知类型的文件扩展名

没有指定运行参数时的处理

用于保存退出状态码的变量

执行解压缩处理

12.6 示例 6:创建指定路径的文件以及中间目录

运行示例

获取目录部分

创建目录

创建文件

12.7 示例 7:将相对路径转换为绝对路径

运行示例

添加 /(分隔号)

=~ 运算符和变量 BASH_REMATCH

确认目录是否存在

路径转换

根目录的处理

12.8 示例 8:在多个文件中查找字符串

运行示例

检查第 1 个参数

检查第 2 个参数

检查指定目录

find 命令和 xargs 命令

避免作为命令选项来处理

/dev/null 的作用

使用空字符分隔

12.9 示例 9:使用 getopt 解析命令行选项

运行示例

getopt 命令

解析命令行选项

将解析后的参数赋值给变量

grep 命令选项

执行查找

12.10 示例 10:使用 getopts 解析命令行选项

运行示例

getopts 命令

区分使用 getopt 和 getopts

12.11 示例 11:在命令行中管理回收站

运行示例

Linux 中回收站的工作原理

根据第 1 个参数执行指定的处理

解析命令行选项

指定回收站路径

trash_put 函数

trash_list 函数

print_trashinfo 函数

trash_restore 函数

改进意见

Chapter 13 shell 脚本的应用场景

13.1 将 shell 脚本用作命令

13.2 cron 批处理

13.3 命令补全

简单的补全文件

使用已输入字符串筛选补全候选

findgrep_getopt.sh 的补全文件——基本结构

补全命令行选项参数

13.4 为 trash.sh 编写补全文件

restore 之外的处理

restore 的处理

13.5 读取补全文件

13.6 bash-completion 软件包

Chapter 14 shell 脚本的测试和调试

14.1 静态代码解析

noexec 选项

ShellCheck

shellcheck 命令

14.2 使用 Bats 进行测试

安装 Bats

编写 Bats 的测试代码

使用 Bats 测试 shell 脚本

14.3 调试

verbose 选项

xtrace 选项

nounset 选项

errexit 选项

部分开启选项

14.4 shell 脚本中的常见错误

变量未定义

变量赋值

if 语句

单词拆分

路径展开

子 shell

Chapter 15 如何编写易用的 shell 脚本

15.1 什么是易于使用的 shell 脚本

命令行选项

错误信息

15.2 什么是易于阅读的 shell 脚本

如何编写注释

变量名和函数名

缩进样式

功能分割

shell 脚本不是万能的

参考文献

看完了

累计评论(0条) 0个书友正在讨论这本书 发表评论

发表评论

发表评论,分享你的想法吧!

买过这本书的人还买过

读了这本书的人还在读

回顶部