高级Bash脚本编程指南:修订间差异

来自Ubuntu中文
跳到导航跳到搜索
第2行: 第2行:
*引自www.linuxsir.org
*引自www.linuxsir.org
*转载地址:http://www.linuxsir.org/bbs/showthread.php?t=256887
*转载地址:http://www.linuxsir.org/bbs/showthread.php?t=256887
==译者序==
==譯者序==


毫无疑问,UNIX/Linux最重要的软件之一就是shell,目前最流行的shell被称为Bash(Bourne Again Shell),几乎所有的Linux和绝大部分的UNIX都可以使用Bash。作为系统与用户之间的交互接口,shell几乎是你在UNIX工作平台上最亲密的朋友,因此,学好shell,是学习Linux/UNIX的的开始,并且它会始终伴随你的工作学习。
毫無疑問,UNIX/Linux最重要的軟件之一就是shell,目前最流行的shell被稱為Bash(Bourne Again Shell),幾乎所有的Linux和絕大部分的UNIX都可以使用Bash。作為系統與用戶之間的交互接口,shell幾乎是你在UNIX工作平台上最親密的朋友,因此,學好shell,是學習Linux/UNIX的的開始,並且它會始終伴隨你的工作學習。


shell是如此地重要,但令人惊奇的是,介绍shell的书没有真正令人满意的。所幸的是,我看到了这本被人称为abs的书,这本书介绍了bash大量的细节和广阔的范围,我遇到的绝大部分的技术问题--无论是我忘记的或是以前没有发现的--都可以在这本书里找到答案。这本使用大量的例子详细地介绍了Bash的语法,各种技巧,调试等等的技术,以循序渐进的学习方式,让你了解Bash的所有特性,在书中还有许多练习可以引导你思考,以得到更深入的知识。无论你是新手还是老手,或是使用其他语言的程序员,我能肯定你能在此书用受益。而本书除了介绍BASH的知识之外,也有许多有用的关于Linux/UNIX的知识和其他shell的介绍。
shell是如此地重要,但令人驚奇的是,介紹shell的書沒有真正令人滿意的。所幸的是,我看到了這本被人稱為abs的書,這本書介紹了bash大量的細節和廣闊的範圍,我遇到的絕大部分的技術問題--無論是我忘記的或是以前沒有發現的--都可以在這本書裡找到答案。這本使用大量的例子詳細地介紹了Bash的語法,各種技巧,調試等等的技術,以循序漸進的學習方式,讓你瞭解Bash的所有特性,在書中還有許多練習可以引導你思考,以得到更深入的知識。無論你是新手還是老手,或是使用其他語言的程序員,我能肯定你能在此書用受益。而本書除了介紹BASH的知識之外,也有許多有用的關於Linux/UNIX的知識和其他shell的介紹。


在看到本书的英文版后,我决定把它翻译出来,在Linuxsir论坛上结识了译者之一杨春敏共同翻译这本书,600多页的书是本大部头的书,我们花了6个月的业余时间才翻译完了。
在看到本書的英文版後,我決定把它翻譯出來,在Linuxsir論壇上結識了譯者之一楊春敏共同翻譯這本書,600多頁的書是本大部頭的書,我們花了6個月的業餘時間才翻譯完了。


关于版权的问题,英文版的作者Mendel Cooper对英文版的版权做了详细的约定,请参考:Appendix Q. Copyright。中文版版权由译者杨春敏和黄毅共同所有,在遵守英文版版权相应条款的条件下,欢迎在保留本书译者名字和版权说明以非盈利的方式自由发布此中文版,以盈利目的的所有行为必须联系英文作者和两位中文译者以获得许可。
關於版權的問題,英文版的作者Mendel Cooper對英文版的版權做了詳細的約定,請參考:Appendix Q. Copyright。中文版版權由譯者楊春敏和黃毅共同所有,在遵守英文版版權相應條款的條件下,歡迎在保留本書譯者名字和版權說明以非盈利的方式自由發佈此中文版,以盈利目的的所有行為必須聯繫英文作者和兩位中文譯者以獲得許可。


本书得以成稿,我(黄毅)要多谢我的女朋友,本该给予她的时间我用来了翻译,多谢你的理解,你是一个很棒的女朋友!
本書得以成稿,我(黃毅)要多謝我的女朋友,本該給予她的時間我用來了翻譯,多謝你的理解,你是一個很棒的女朋友!


译者 杨春敏 黄毅
譯者 楊春敏 黃毅


2006.5.15
2006.5.15
第20行: 第20行:
Advanced Bash-Scripting Guide
Advanced Bash-Scripting Guide


<<高级Bash脚本编程指南>>
<<高級Bash腳本編程指南>>


一本深入学习shell脚本艺术的书籍
一本深入學習shell腳本藝術的書籍


Version 3.7.2
Version 3.7.2
第32行: 第32行:


这本书假定你没有任何脚本或一般程序的编程知识,但是如果你有相关的知识,那么你将很容易
這本書假定你沒有任何腳本或一般程序的編程知識,但是如果你有相關的知識,那麼你將很容易
达到中高级的水平...all the while sneaking in little snippets of UNIX? wisdom and
達到中高級的水平...all the while sneaking in little snippets of UNIX? wisdom and
lore(这句不知道怎么译).你可以把本书作为教材,自学手册,或者你获得shell脚本技术的文档.
lore(這句不知道怎麼譯).你可以把本書作為教材,自學手冊,或者你獲得shell腳本技術的文檔.
书中的练习和例子脚本中的注释将会与读者有更好的互动,但是最关键的前提是:
書中的練習和例子腳本中的註釋將會與讀者有更好的互動,但是最關鍵的前提是:
想真正学习脚本编程的唯一途径就是编写脚本.
想真正學習腳本編程的唯一途徑就是編寫腳本.


这本书也可作为教材来讲解一般的编程概念.
這本書也可作為教材來講解一般的編程概念.


下载本书最新版本,这是一个以tar和bzip2进行打包的,并且是以HTML来发行的.http://personal.riverusers.com/~thegrendel/abs-guide-3.7.tar.bz2,
下載本書最新版本,這是一個以tar和bzip2進行打包的,並且是以HTML來發行的.http://personal.riverusers.com/~thegrendel/abs-guide-5.5.tar.bz2


 
當然,你也可以獲得本書的pdf版本在
当然,你也可以获得本书的pdf版本在
http://www.tldp.org/LDP/abs/abs-guide.pdf.
http://www.tldp.org/LDP/abs/abs-guide.pdf.


可以查看修订历史.http://personal.riverusers.com/~thegrendel/Change.log
可以查看修訂歷史.http://personal.riverusers.com/~thegrendel/Change.log


译者:杨春敏,黄毅
譯者:楊春敏,黃毅




一直想好好学习一下bash,可惜网上的资料都杂乱不堪,我还是喜欢通过一本书系统的学习.这本
一直想好好學習一下bash,可惜網上的資料都雜亂不堪,我還是喜歡通過一本書系統的學習.這本
书来得正是时候.本书的作者真是非常的严谨,从例子里的改进人名单就能看出来.可惜我水平真
書來得正是時候.本書的作者真是非常的嚴謹,從例子裡的改進人名單就能看出來.可惜我水平真
的是非常有限,好多地方估计译得都有问题.希望阅读的朋友们多多提些修改建议.我会尽我的最
的是非常有限,好多地方估計譯得都有問題.希望閱讀的朋友們多多提些修改建議.我會盡我的最
大努力去修正它.
大努力去修正它.



2009年1月13日 (二) 01:04的版本

转载说明

譯者序

毫無疑問,UNIX/Linux最重要的軟件之一就是shell,目前最流行的shell被稱為Bash(Bourne Again Shell),幾乎所有的Linux和絕大部分的UNIX都可以使用Bash。作為系統與用戶之間的交互接口,shell幾乎是你在UNIX工作平台上最親密的朋友,因此,學好shell,是學習Linux/UNIX的的開始,並且它會始終伴隨你的工作學習。

shell是如此地重要,但令人驚奇的是,介紹shell的書沒有真正令人滿意的。所幸的是,我看到了這本被人稱為abs的書,這本書介紹了bash大量的細節和廣闊的範圍,我遇到的絕大部分的技術問題--無論是我忘記的或是以前沒有發現的--都可以在這本書裡找到答案。這本使用大量的例子詳細地介紹了Bash的語法,各種技巧,調試等等的技術,以循序漸進的學習方式,讓你瞭解Bash的所有特性,在書中還有許多練習可以引導你思考,以得到更深入的知識。無論你是新手還是老手,或是使用其他語言的程序員,我能肯定你能在此書用受益。而本書除了介紹BASH的知識之外,也有許多有用的關於Linux/UNIX的知識和其他shell的介紹。

在看到本書的英文版後,我決定把它翻譯出來,在Linuxsir論壇上結識了譯者之一楊春敏共同翻譯這本書,600多頁的書是本大部頭的書,我們花了6個月的業餘時間才翻譯完了。

關於版權的問題,英文版的作者Mendel Cooper對英文版的版權做了詳細的約定,請參考:Appendix Q. Copyright。中文版版權由譯者楊春敏和黃毅共同所有,在遵守英文版版權相應條款的條件下,歡迎在保留本書譯者名字和版權說明以非盈利的方式自由發佈此中文版,以盈利目的的所有行為必須聯繫英文作者和兩位中文譯者以獲得許可。

本書得以成稿,我(黃毅)要多謝我的女朋友,本該給予她的時間我用來了翻譯,多謝你的理解,你是一個很棒的女朋友!

譯者 楊春敏 黃毅

2006.5.15

Advanced Bash-Scripting Guide

<<高級Bash腳本編程指南>>

一本深入學習shell腳本藝術的書籍

Version 3.7.2

2005/11/16

作者:Mendel Cooper

mail:[email protected]

這本書假定你沒有任何腳本或一般程序的編程知識,但是如果你有相關的知識,那麼你將很容易 達到中高級的水平...all the while sneaking in little snippets of UNIX? wisdom and lore(這句不知道怎麼譯).你可以把本書作為教材,自學手冊,或者你獲得shell腳本技術的文檔. 書中的練習和例子腳本中的註釋將會與讀者有更好的互動,但是最關鍵的前提是: 想真正學習腳本編程的唯一途徑就是編寫腳本.

這本書也可作為教材來講解一般的編程概念.

下載本書最新版本,這是一個以tar和bzip2進行打包的,並且是以HTML來發行的.http://personal.riverusers.com/~thegrendel/abs-guide-5.5.tar.bz2

當然,你也可以獲得本書的pdf版本在 http://www.tldp.org/LDP/abs/abs-guide.pdf.

可以查看修訂歷史.http://personal.riverusers.com/~thegrendel/Change.log

譯者:楊春敏,黃毅

mail:[email protected]

一直想好好學習一下bash,可惜網上的資料都雜亂不堪,我還是喜歡通過一本書系統的學習.這本 書來得正是時候.本書的作者真是非常的嚴謹,從例子裡的改進人名單就能看出來.可惜我水平真 的是非常有限,好多地方估計譯得都有問題.希望閱讀的朋友們多多提些修改建議.我會盡我的最 大努力去修正它.

目录

第一部分. 热身

  1. 为什么使用shell编程
  2. 带着一个Sha-Bang出发(Sha-Bang指的是#!)
    1. 调用一个脚本
    2. 初步的练习

第二部分. 基本

  1. 特殊字符
  2. 变量和参数的介绍
    1. 变量替换
    2. 变量赋值
    3. Bash变量是不分类型的
    4. 特殊的变量类型
  3. 引用(翻译的可能有问题,特指引号)
    1. 引用变量
    2. 转义(\)
  4. 退出和退出状态
  5. Tests
    1. Test结构
    2. 文件测试操作
    3. 其他比较操作
    4. 嵌套的if/then条件test
    5. 检查你的test知识
  6. 操作符和相关的主题
    1. 操作符
    2. 数字常量

第三部分. 超越基本

  1. 变量重游
    1. 内部变量
    2. 操作字符串
    3. 参数替换
    4. 指定类型的变量:declare或者typeset
    5. 变量的间接引用
    6. RANDOM: 产生随机整数
    7. 双圆括号结构
  2. 循环和分支
    1. 循环
    2. 嵌套循环
    3. 循环控制
    4. 测试与分支(case和select结构)
  3. 内部命令与内建
    1. 作业控制命令
  4. 外部过滤器,程序和命令
    1. 基本命令
    2. 复杂命令
    3. 时间/日期 命令
    4. 文本处理命令
    5. 文件与归档命令
    6. 通讯命令
    7. 终端控制命令
    8. 数学计算命令
    9. 混杂命令
  5. 系统与管理命令
    1. 分析一个系统脚本
  6. 命令替换
  7. 算术扩展
  8. I/O 重定向
    1. 使用exec
    2. 代码块的重定向
    3. 应用
  9. Here Documents
    1. Here Strings
  10. 休息时间

第四部份. 高级

  1. 正则表达式
    1. 一个简要的正则表达式介绍
    2. 通配
  2. 子shell(Subshells)
  3. 受限shell(Restricted Shells)
  4. 进程替换
  5. 函数
    1. 复杂函数和函数复杂性
    2. 局部变量
    3. 不使用局部变量的递归
  6. 别名(Aliases)
  7. 列表结构
  8. 数组
  9. /dev 和 /proc
    1. /dev
    2. /proc
  10. 关于Zeros和Nulls
  11. 调试
  12. 选项
  13. Gotchas
  14. 脚本编程风格
    1. 非官方的Shell脚本风格
  15. 杂项
    1. 交互式和非交互式的shells和脚本
    2. Shell 包装
    3. 测试和比较: 另一种方法
    4. 递归
    5. 彩色脚本
    6. 优化
    7. 各种小技巧
    8. 安全话题
      1. 被感染的脚本
      2. 隐藏Shell脚本源码
    9. 移植话题
    10. 在Windows下进行Shell编程
  16. Bash, 版本 2 和 3
    1. Bash, 版本2
    2. Bash, 版本3

35. 后记

  1. 作者后记
  2. 关于作者
  3. 哪里可以取得帮助?
  4. 制作这本书的工具
    1. 硬件
    2. 软件和排版软件
  5. Credits