zoukankan      html  css  js  c++  java
  • 高级Bash脚本编程指南

    http://tldp.org/LDP/abs/html/

    高级Bash脚本编程指南
    对脚本语言艺术的深入探索

    本教程不承担以前的脚本或编程知识,但进展迅速走向一个中级/高级水平的指令。..一直偷偷在细小的UNIX®智慧和学识。它作为一本教科书,一本手册,自学,并作为一个参考和知识的来源,壳牌的脚本技术。练习和大量的评论实例请读者参与,在这样的前提下,真正学习脚本的唯一途径是编写脚本。
    这本书是适合课堂使用的一般介绍编程的概念。
    本文件被授予公共领域。没有版权!

    奉献
    对于安妮塔,所有魔术的来源
    内容表
    第1部分。景区简介
    1。外壳编程!
    2。从一个沙砰的开始
    第2部分。基础
    3。特殊字符
    4。变量和参数介绍
    5。引用
    6。退出和退出状态
    7。试验
    8。操作及相关主题
    第3部分。超越基本
    9。另一个看变量
    10。操纵变量
    11。循环和分支
    12。命令替换
    13。运算扩展
    14。休息时间
    第4部分。命令
    15。内部命令和内部
    16。外部过滤器,程序和命令
    17。系统和行政命令
    第5部分。高级主题
    18。正则表达式
    19。这里的文件
    20。输入/输出重定向
    21。次壳层
    22。限制壳
    23。过程替换
    24。功能
    25。别名
    26。列表构造
    27。阵列
    28。间接引用
    29。/ dev / proc
    30。网络编程
    31。零点和零点
    32。调试
    33。选项
    34。陷阱
    35。风格的脚本
    36。杂记
    37。bash,版本2,3,和4
    38。尾注
    38.1。作者注
    38.2。关于作者
    38.3。去哪里求助
    38.4。用来制作这本书的工具
    38.5。信用
    38.6。免责声明
    参考书目
    贡献脚本
    参考卡片
    C.一个sed和awk微底漆
    c。SED
    2。awk
    D.解析和管理路径
    具有特殊意义的退出代码
    详细介绍了输入/输出和输入/输出重定向
    命令行选项
    1。标准命令行选项
    G。bash命令行选项
    重要文件
    一、重要的系统目录
    介绍可编程完成
    K定位
    历史命令
    M.样本。bash_profile文件.bashrc和。
    转换为脚本的批处理文件
    运动
    0.1。分析脚本
    O。书写脚本
    修订历史
    下载和镜像站点
    做列表
    版权所有
    T. ASCII表
    指数
    表格列表
    8-1。运算符优先级
    15-1。作业标识符
    33-1。Bash的选项
    36-1。数字表示的颜色在逃避序列
    B-1。特殊壳体变量
    B-2。测试运算符:二进制比较
    B-3。测试运营商:文件
    B-4。参数替换与扩展
    B-5。字符串操作
    B6。杂构造
    C-1。基本命令
    C-2。SED算子实例
    E-1。保留退出码
    N-1。批处理文件的关键字/变量/运营商,以及它们的壳等价物
    N-2。DOS命令和对应的UNIX
    P-1。修订历史


    实例列表
    2-1。清理:清理日志文件的脚本/无功/日志
    2-2。清理:一种改进的清理脚本
    23。清理:一个增强和广义版本的上述脚本。
    3-1。代码块和输入/输出重定向
    3-2。节省代码块到文件的输出
    3-3。在后台运行一个循环
    3-4。备份所有文件在最后一天发生了变化
    4-1。变量赋值和替换
    4-2。纯变量赋值
    4-3。变量赋值,纯和想象
    4-4。整数还是字符串?
    4-5。位置参数
    4-6。WH,Whois域名查询
    4-7。移位
    5-1。奇怪的变量
    5-2。逃离人物
    5-3。检测按键
    6-1。退出/退出状态
    6-2。否定条件使用!
    7-1。什么是真理?
    7-2。等价测试,/usr/bin /测试,[ ],和/usr/bin / [
    7-3。算术测试(())
    7-4。断开连接的测试
    7-5。运算和字符串比较
    7-6。测试字符串是否为空
    7-7。zmore
    8-1。最大公约数
    8-2。使用算术运算
    8-3。使用&&和| |复合条件试验
    8-4。数值常数表示
    8-5。操纵变量C
    9-1。如果美元和空白
    9-2。定时输入
    9-3。再一次,定时输入
    9-4。定时读取
    9-5。我是根吗?
    9-6。阿格列斯:上市的论点与$ * $ @
    9-7。不一致的$ *和$ @行为
    9-8。*美元美元美元@当IFS是空的
    9-9。下划线变量
    9-10。使用声明类型变量
    9-11。产生随机数
    9-12。从一副牌中挑选一张牌
    9-13。布朗运动仿真
    9-14。随机值
    9-15。带随机的单芯片
    9-16。补种的随机
    9-17。伪随机数,使用awk
    10-1。在文本文件中插入段落之间的空白行
    10-2。产生一个字符的随机字符串
    10-3。转换图形文件格式,文件名更改
    10-4。转换音频文件支持
    10-5。仿真getopt
    10-6。提取和定位子串的替代方法
    10-7。使用参数替换和错误消息
    10-8。参数替换和“使用”消息
    10-9。变量的长度
    10-10。参数替换中的模式匹配
    10-11。重命名文件扩展名:
    10-12。利用模式匹配来解析任意字符串
    10-13。字符串的前缀或后缀的匹配模式

    11-1。简单的循环
    11-2。在每一个元素中有2个参数的循环
    11-3。FileInfo:操作在文件列表中包含的变量
    11-4。一个参数化的文件列表操作
    11-5。用一个循环操作文件
    11-6。在[列表]中缺少的
    11-7。在命令替换循环中生成[列表]
    11-8。一个二进制文件的查找替换
    11-9。在系统中列出所有用户
    11-10。检查所有的二进制文件在一个目录中的作者
    11-11。列出目录中的符号链接
    11-12。一个目录中的符号链接,保存到一个文件中
    11-13。C环
    11-14。在批处理模式下使用数码传真
    11-15。简单循环
    11-16。另一个循环
    11-17。多条件循环
    11-18。在一个while循环语法风格
    11-19。循环
    11-20。嵌套循环
    11-21。中断和继续在一个循环中的作用
    11-22。打破多个循环的水平
    11-23。继续在一个较高的循环水平
    11-24。在实际任务中继续使用
    11-25。使用案例
    11-26。创建菜单使用案例
    11-27。使用命令替换生成变量
    11-28。简单字符串匹配
    11-29。检查拼音输入
    11-30。使用选择创建菜单
    11-31。在函数中创建菜单使用
    12-1。愚蠢的剧本
    12-2。从循环中产生一个变量
    12-3。发现字谜
    15-1。一个脚本,生成多个实例本身
    15-2。printf在行动
    15-3。变量赋值,使用读
    15-4。当读到没有变量时会发生什么
    15-5。多行输入读取
    15-6。检测箭头键
    7。使用读文件重定向
    15-8。从管道读问题
    15-9。更改当前工作目录
    15-10。让我们做算术。
    15-11。显示的效果评价
    15-12。使用eval来选择变量之间
    15-13。呼应命令行参数
    15-14。强制注销
    15-15。一个版本的rot13
    15-16。利用位置参数设置
    15-17。倒车位置参数
    15-18。指定的位置参数
    15-19。”“一个不可变的
    15-20。利用出口来传递变量到一个嵌入式的awk脚本
    15-21。使用getopts阅读选项/参数传递给脚本
    15-22。”包括“数据文件
    15-23。一个(无用的)脚本,来源本身
    15-24。影响执行
    15-25。一个脚本执行的本身
    15。等待一个进程,完成前处理
    15-27。一种杀死自己的剧本

    16-1。使用ls燃烧光盘创建目录
    16-2。你好或再见
    16-3。badname,消除当前目录包含字符和空格的文件名不好。
    16-4。删除一个文件的inode号
    16-5。日志文件:使用xargs监控系统日志
    16-6。复制当前目录下的文件到另一个目录
    16-7。杀害过程的名称
    16-8。使用xargs词频分析
    16-9。使用表达式
    16-10。使用日期
    16-11。日期计算
    16胜12。字频率分析
    16-13。哪些文件是脚本?
    16-14。产生10位随机数
    16-15。用尾巴来监视系统日志
    16-16。打印出存储电子邮件信息中的行
    16-17。仿真grep在脚本
    16-18。字谜求解
    16-19。查韦氏字典定义1913
    16-20。在一个列表中检查单词的有效性
    16-21。向上:把文件全部转换为大写。
    16-22。小写:改变工作目录下的所有文件名为小写。
    16-23。杜:DOS到UNIX文本文件的转换。
    16-24。rot13:超弱加密。
    16-25。产生“密码引用“拼图
    16-26。格式化文件列表。
    16-27。使用列来格式化目录列表
    16-28。NL:自编号脚本。
    16-29。manview:查看格式化联机
    16-30。使用cpio移动一个目录树
    16-31。开箱RPM档案
    16-32。从C++程序文件中剥离注释
    16-33。探索/ usr / X11R6 /箱
    16-34。一种“改进”的字符串命令
    16-35。使用CMP脚本中比较两个文件。
    16-36。basename和目录
    18-37。一个脚本,它在部分中复制它自己
    16-38。检查文件的完整性
    16-39。uudecoding编码的文件
    16-40。找出报告垃圾邮件发送者
    16-41。垃圾邮件域分析
    1642。获得股票报价
    16-43。更新FC4
    16-44。使用SSH
    16-45。邮件本身的脚本
    16-46。产生素数
    16-47。按月支付按揭
    16-48。基础转换
    入院。在公元前使用这里的文件
    16-50。计算
    46。将一个十进制数进制
    16~52。保理业务
    16-53。计算一个三角形的斜边
    16~54。使用SEQ产生回路参数
    16-55。字母计数
    其中。使用getopt来解析命令行选项
    16-57。复制自己的脚本
    16-58。锻炼DD
    16-59。捕获击键
    16-60。准备一个可启动的Raspberry Pi的SD卡
    16-61。安全删除文件
    16~62。文件名生成器
    - 63。转换米到英里
    64。用M4
    17-1。设置新密码
    17-2。设置擦除字符
    17-3。密码:关闭终端呼应
    17-4。按键检测
    17-5。检查identd获取远程服务器
    17-6。pidof帮助杀死进程
    17-7。检查光盘图像
    17-8。在文件中创建文件系统
    17-9。增加一个新的硬盘
    17-10。使用umask隐藏窥探一个输出文件
    17-11。背光:改变(笔记本电脑)屏幕背光亮度
    17-12。killall,从/etc/rc。D D /初始化。

    19-1。广播:发送消息给每个登录的人
    19-2。假档案:创建一个虚拟文件2
    19-3。使用猫的多线信息
    19-4。多行消息,用制表符抑制
    19-5。可替换参数的文档
    19-6。上传一个文件对sunsite传入的目录
    197。参数替换
    打。产生另一个脚本的脚本
    19-9。这里的文件和功能
    权宜之计。”匿名“这里文件
    19-11。注释掉代码块
    19-12。一个自我记录的脚本
    19-13。前面加上一个线文件
    19-14。解析邮箱
    20-1。重定向stdin使用exec
    20-2。重定向stdout使用exec
    20-3。stdin和stdout重定向都在同一个脚本的执行
    20-4。避免壳层
    20-5。重定向循环
    20-6。循环的交替形式
    20-7。重定向到循环
    20-8。重定向循环
    20-9。回路(包括重定向stdin和stdout重定向)
    20-10。如果/然后测试重定向
    20-11。上述例子的数据文件names.data
    20-12。测井事件
    21-1。在一层的变量范围
    2。用户配置文件列表
    21-3。并行运行过程中的层
    22-1。在受限模式下运行脚本
    23-1。代码块重定向不分叉
    23-2。重定向过程替代输出成一个圈。
    24-1。简单函数
    2。函数参数
    24-3。功能和命令行参数传递给脚本
    24-4。间接引用的函数
    24-5。引用参数传递给函数
    24-6。再次,引用参数传递给函数
    24-7。最大值
    24-8。将数字转换为罗马数字
    24-9。在函数中测试大的返回值
    24-10。比较大整数
    24-11。实名实名
    24-12。局部变量可见性
    24-13。一个简单递归函数的演示
    24-14。另一个简单的演示
    24-15。递归,使用局部变量
    最高。斐波那契数列
    24-17。河内塔
    25-1。在一个脚本的别名
    25-2。unalias:设置和复位的别名
    26-1。使用和列表来测试命令行参数
    26-2。另一个命令行参数测试使用一个列表
    26-30。用或列表组合以和列表
    27-1。简单数组使用
    27-2。格式化一首诗
    27-3。各种数组运算
    27-4。数组的字符串操作
    27-5。将脚本的内容加载到数组中
    27-6。阵列的一些特殊性质
    27-7。空数组和空元素
    27-8。初始化数组
    27-9。复制和串联阵列
    27-10。在串联阵列
    27-11。气泡排序
    目前取得27胜12负。嵌入式阵列和间接引用
    27-13。筛法
    27-14。筛法,优化
    27-15。模拟一个下推栈
    27-16。复杂数组应用:探索一个奇怪的数学系列
    节。模拟一个二维数组,然后倾斜它
    28-1。间接变量引用
    28-2。通过间接引用awk
    29-1。使用/ dev / TCP故障排除
    29-2。演奏音乐
    29-3。寻找与一个控制的过程
    29。在线连接状态

    30-1。打印服务器环境
    30-2。地址
    31-1。藏饼干罐
    31-2。建立一个交换文件使用/dev/zero
    31-3。创建一个虚拟磁盘
    32-1。马车的脚本
    32-2。遗漏关键字
    可。测试脚本:另一个车
    32-4。用断言测试一个条件
    32-5。在出口处
    32-6。清理后,控制
    32-7。一个简单的执行进度条
    32-8。追踪变数
    32-9。运行多个进程(在一个SMP盒)
    34-1。数值和字符串比较不等价
    34-2。电子陷阱
    34-3。管道输出的回声读取
    36-1。外壳包装器
    36-2。一种更为复杂的壳包装器
    36-3。一个通用的外壳包装,写入日志文件
    36-4。在一个awk脚本外壳包装
    36-5。在另一个awk脚本外壳包装
    36-6。Perl中嵌入一个bash脚本
    36-7。Bash和Perl脚本相结合
    36-8。Python嵌入一个bash脚本
    36-9。说话的剧本
    36-10。一种递归调用的(无用的)脚本
    36-11。一种递归调用的(有用的)脚本
    36-12。一种递归调用的另一个(有用的)脚本
    36-13。“彩色”地址数据库
    36-14。画一个盒子
    36-15。呼应彩色文本
    36-16。“赛马”的游戏
    36-17。一个进度条
    36-18。返回值的诡计
    36-19。更多的返回值的诡计
    36-20。传递和返回阵列
    36-21。有趣的字谜
    36-22。从外壳脚本调用的小部件
    36-23。测试套件
    37-1。字符串扩展
    37-2。间接变量引用-新方法
    37-3。简单的数据库应用程序,使用间接变量引用
    37-4年。使用数组和其他弄虚作假造成四随机手牌
    37-5。一个简单的地址数据库
    37-6。更复杂的地址数据库
    37-7。测试字符
    37-8。阅读字符
    37-9。使用此处设置变量
    37-10。管道输入读取
    37-11。负阵指标
    37-12。字符串提取构造中的负参数
    A-1。mailformat:格式的电子邮件
    A-2。豆:一个头脑简单的文件重命名工具
    A-3。重命名:重命名文件名中包含空格的空白
    A-4。encryptedpw:上传到FTP站点,采用局部加密的密码
    A-5。复制光盘:复制数据光盘
    A-6。Collatz系列
    A-7。天之间:天的日期
    A-8。制作字典
    A-9。探测法转换
    A-10。生活游戏
    A-11。生命游戏的数据文件
    A-12。斩:删除的邮件和新闻邮件标题
    13。密码:产生随机的8个字符的密码
    A-14。先进先出:每天备份,使用命名管道
    A-15。利用模算子生成素数
    48。树:显示一个目录树
    A-17。tree2:备用目录树的脚本
    A-18。字符串函数:C风格字符串函数
    A-19。目录信息
    20。哈希函数库
    21。上色使用Hash函数的文本
    22。更多关于哈希函数
    A 23。安装USB钥匙链存储设备
    A-24。转换为HTML
    A-25。保持博客
    26。保护字符串
    a-27。解密字符串
    a-28。垃圾邮件识别
    A-29。垃圾邮件猎杀
    A-30。让wget更容易使用
    31。一个播客脚本
    A-32。夜间备份到火线HD
    A-33。扩展光盘命令
    a-34。声卡安装脚本
    A-35。在文本文件中定位拆分段落
    使用。插入排序
    a-37。标准偏差
    A-38。对共享软件作者垫文件生成器
    a-39。一个网页编辑器
    a-40。玫瑰花瓣
    A-41。quacky:一perquackey型文字游戏
    a-42。尼姆
    A-43。命令行
    A-44。一个通用的shell脚本作业方案
    A-45。骑士之旅
    A - 46。魔术广场
    A-47。十五拼图
    A-48。河内的塔楼,图形版
    A-49。河内的塔楼,交替的图形版本
    A-50。getopt-simple.sh脚本的另一个版本
    a-51。用于标签扩展的版本usegetopt.sh实例附录
    蛋白A52。循环通过所有可能的颜色背景
    a-53。摩尔斯电码的实践
    a-54。Base64编码/解码
    a-55。插入文本文件中使用sed
    a-56。的gronsfeld密码
    安-57。数字发生器
    a-58。基础知识
    A-59。测试各种命令的执行时间
    A-60。关联阵列与传统阵列(执行时间)
    C-1。计数信的出现
    J-1。对于usegetopt.sh完成剧本
    M-1。bashrc文件样本。
    M-2。bash_profile文件。
    N-1。viewdata.bat:DOS批处理文件
    N-2。viewdata.sh:viewdata.bat shell脚本的转换
    T-1。一个生成ASCII表脚本
    T-2。另一个ASCII表脚本
    T-3。三分之一个ASCII表脚本,使用awk








  • 相关阅读:
    matplotlib imshow
    django restframework Serializers
    python assert用法
    nginx 深入篇
    scrapy 中间件
    mysql 存储引擎
    scrapy 部署
    pyinstaller模块使用
    wechat 网页版通信全过程
    hadoop YARN
  • 原文地址:https://www.cnblogs.com/chenshoubiao/p/4828741.html
Copyright © 2011-2022 走看看