没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
高级Bash脚本编程指南
一本深入学习shell脚本艺术的书籍
Mendel Cooper
<thegrendel@theriver.com>
春敏 杨 -
毅 黄 -
3.9.1
2006年5月26日
这本书假定你没有任何关于脚本或一般程序的编程知识, 但是如果你具备相关的知识, 那么你将很容易
就能够达到中高级的水平
. . . 所有这些只是UNIX®浩瀚知识的一小部分
. 你可以把本书作为教材, 自
学手册, 或者是关于shell脚本技术的文档. 书中的练习和样例脚本中的注释将会与读者进行更好的互
动, 但是最关键的前提是:
想真正学习脚本编程的唯一途径就是亲自动手编写脚本.
这本书也可作为教材来讲解一般的编程概念.
本文档的最新版本是作为一个归档文件bzip2-ed, "tar包"来发布的, 其中还包括SGML源代码和编译好
的HTML版本. 读者可以从作者的主页上下载. pdf版本也可以从作者的主页上下载. 查看change log来
查看校订历史.
贡献
献给Anita, 我所有动力的源泉!
目录
序
1. 原书作者致中国读者(英文)
2. 原书作者致中国读者(译文)
3. 黄毅
4. 杨春敏
第一部分. 热身
1. 为什么使用shell编程?
2. 带着一个Sha-Bang出发(Sha-Bang指的是#!)
2.1. 调用一个脚本
2.2. 初步的练习
第二部分. 基本
3. 特殊字符
4. 变量和参数的介绍
4.1. 变量替换
4.2. 变量赋值
4.3. Bash变量是不区分类型的
4.4. 特殊的变量类型
5. 引用
5.1. 引用变量
5.2. 转义
6. 退出和退出状态码
7. 条件判断
7.1. 条件测试结构
7.2. 文件测试操作符
7.3. 其他比较操作符
7.4. 嵌套的if/then条件测试
7.5. 检测你对测试知识的掌握情况
8. 操作符与相关主题
8.1. 操作符
8.2. 数字常量
第三部分. 进阶
9. 变量重游
9.1. 内部变量
9.2. 操作字符串
9.3. 参数替换
9.4. 指定变量的类型: 使用declare或者typeset
9.5. 变量的间接引用
9.6. $RANDOM: 产生随机整数
9.7. 双圆括号结构
10. 循环与分支
10.1. 循环
10.2. 嵌套循环
10.3. 循环控制
10.4. 测试与分支(case与select结构)
11. 内部命令与内建命令
11.1. 作业控制命令
12. 外部过滤器, 程序和命令
12.1. 基本命令
12.2. 复杂命令
12.3. 时间/日期 命令
12.4. 文本处理命令
12.5. 文件与归档命令
12.6. 通讯命令
12.7. 终端控制命令
12.8. 数学计算命令
12.9. 混杂命令
13. 系统与管理命令
13.1. 分析一个系统脚本
14. 命令替换
15. 算术扩展
16. I/O重定向
16.1. 使用exec
16.2. 代码块重定向
16.3. 重定向的应用
17. Here Document
17.1. Here String
18. 休息片刻
第四部分. 高级主题
19. 正则表达式
19.1. 一份简要的正则表达式介绍
19.2. 通配(globbing)
20. 子shell
21. 受限shell
22. 进程替换
23. 函数
23.1. 复杂函数和函数复杂性
23.2. 局部变量
23.3. 不使用局部变量的递归
24. 别名
25. 列表结构
26. 数组
27. /dev和/proc
27.1.
/dev
27.2. /proc
28. Zero与Null
29. 调试
30. 选项
31. 陷阱
32. 脚本编程风格
32.1. 非官方的Shell脚本编写风格
33. 杂项
33.1. 交互与非交互式的交互与非交互式的shell和脚本
33.2. Shell包装
33.3. 测试和比较: 一种可选的方法
33.4. 递归
33.5. 将脚本"彩色化"
33.6. 优化
33.7. 各种小技巧
33.8. 安全问题
33.9. 可移植性问题
33.10. Windows下的shell脚本
34. Bash, 版本2与版本3
34.1. Bash, 版本2
34.2. Bash, 版本3
35. 后记
35.1. 作者后记
35.2. 关于作者
35.3. 译者后记
35.3.1. 杨春敏
35.3.2. 黄毅
35.4. 在哪里可以获得帮助
35.5. 用来制作这本书的工具
35.5.1. 硬件
35.5.2. 软件与排版软件
35.6. 致谢
35.7. 译者致谢
参考文献
A. 捐献的脚本
B. 参考卡片
C. 一个学习Sed和Awk的小手册
C.1. Sed
C.2. Awk
D. 带有特殊含义的退出码
E. I/O和I/O重定向的详细介绍
F. 命令行选项
F.1. 标准命令行选项
F.2. Bash命令行选项
G. 重要的文件
H. 重要的系统目录
I. 本地化
J. 历史命令
K. 一个简单的
.bashrc文件
L. 将DOS批处理文件转换为Shell脚本
M. 练习
M.1. 分析脚本
M.2. 编写脚本
N. 修订记录
O. 翻译版修订记录
P. 镜像站点
Q. To Do列表
R. 版权
表格清单
11-1. 作业标识符
30-1. Bash选项
33-1. 转义序列中颜色与数值的对应
B-1. 特殊的shell变量
B-2. 测试操作: 二元比较
B-3. 文件类型的测试操作
B-4. 参数替换和扩展
B-5. 字符串操作
B-6. 一些结构的汇总
C-1. 基本sed操作
C-2. sed操作符举例
D-1. "保留的"退出码
L-1. 批处理文件关键字 / 变量 / 操作符, 和等价的shell符号
L-2. DOS命令与UNIX的等价命令
N-1. 修订历史
O-1. 翻译版修订历史
例子清单
2-1. 清除: 清除/var/log下的log文件
2-2. 清除:一个改良的清除脚本
2-3. 清除: 一个增强的和广义的删除logfile的脚本
3-1. 代码块和I/O重定向
3-2. 将一个代码块的结果保存到文件
3-3. 在后台运行一个循环
3-4. 备份最后一天所有修改的文件
4-1. 变量赋值和替换
4-2. 简单的变量赋值
4-3. 简单和复杂, 两种类型的变量赋值
4-4. 整型还是字符串?
4-5. 位置参数
4-6. wh, whois节点名字查询
4-7. 使用shift命令
5-1. echo出一些诡异变量
5-2. 转义符
6-1. 退出/退出状态码
6-2. 反转一个条件的用法!
7-1. 什么是真?
7-2. test,
/usr/bin/test, [ ], 和/usr/bin/[都是等价命令
7-3. 算术测试需要使用(( ))
7-4. 测试那些断掉的链接文件
7-5. 算术比较与字符串比较
7-6. 检查字符串是否为
null
7-7. zmore
8-1. 最大公约数
8-2. 使用算术操作符
8-3. 使用&&和||进行混合条件测试
8-4. 数字常量表示法
9-1. $IFS与空白字符
9-2. 定时输入
9-3. 再来一个, 定时输入
9-4. 定时read
9-5. 我是root么?
9-6. arglist: 通过$*和$@列出所有的参数
9-7.
$*和$@的不一致的行为
9-8. 当
$IFS为空时的$*和$@
9-9. 下划线变量
9-10. 在一个文本文件的段落之间插入空行
9-11. 转换图片文件格式, 同时更改文件名
9-12. 将音频流文件转换为
ogg
各式的文件
9-13. 模拟
getopt
9-14. 提取字符串的另一种方法
9-15. 使用参数替换和错误消息
9-16. 参数替换和"usage"消息(译者注: 通常就是帮助信息)
9-17. 变量长度
9-18. 参数替换中的模式匹配
9-19. 修改文件扩展名:
9-20. 使用模式匹配来解析任意字符串
9-21. 对字符串的前缀和后缀使用匹配模式
9-22. 使用declare来指定变量的类型
9-23. 间接引用
9-24. 传递一个间接引用给
awk
9-25. 产生随机整数
9-26. 从一幅扑克牌中取出一张随机的牌
9-27. 两个指定值之间的随机数
剩余587页未读,继续阅读
资源评论
- 雪碧Jane2013-03-19高级bash脚本编程指南,Mendel Cooper,杨春敏+黄毅,2006,分3部分,共33章,可读性强,链接做的很全,例子也很多。非常好的shall电子书!推荐!
- l0132695942013-06-06还好了!但是我觉得这本书不是我理想中的书了!或许是我没放下心去看吧!本人一点shell不会!
ricks_wu
- 粉丝: 58
- 资源: 4
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功