Bash脚本编程基础.ppt

  1. 1、本文档共53页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Bash脚本编程基础

Bash脚本编程基础 xxxxli@ 课程目标 掌握Bash的类型与配置 掌握Bash基本语法 掌握监控程序的编写 掌握Bash结构化编程 内容导航 Bash基础 ? Bash语法 监控实例 Bash基础 Shell与Bash、sh Bash的类型 Bash命令的解释过程 Bash与Vim配置 Shell Bash的类型 Login Bash Login sh login sh和login bash是一样的吗? Interactive Bash 什么是交互式Bash 启动交互式Bash时,Bash做了什么 source 为了统一管理,在login 的时候自动执行 ~/.bashrc Bash脚本 常见问题: #! /bin/bash 的位置 来自windows的CRLF的换行符 脚本的权限位 Bash的退出码 Bash脚本的执行 父shell Fork一sub-shell Sub-shell继承父shell环境 Sub-shell调用指定的解释器解释执行该脚本 Sub-shell退出, 相关环境被销毁 父shell取得sub-shell的退出状态 1、brace expansion(花括号扩展) 2、tilde expansion(波浪线扩展) 3、parameter,variable expansion(变量扩展) 4、arithmetic expansion(算术扩展) 5、command substitution(命令替换) 6、word splitting(词的拆分) 7、pathname expansion(路径名扩展) Bash命令的解析过程 Bash脚本与Vim配置 /etc/vimrc 或 ~/.vimrc中配置 内容导航 Bash基础 √ Bash语法 ? 监控实例 变量 数值运算 流程控制 函数 Bash语法 变量 变量定义: name=value 变量引用: $name 注意: =号两边不允许空格 $name是${name}的简写 变量 命令替换 常用变量 环境变量 环境变量是Bash或用户预设置的变量,可被继承并直接使用 有些环境变量会影响shell的行为 环境变量的设置 export name=value; bash foobar.sh name=value ./foobar.sh 更多信息请 man env 更多变量见 man bash: [Shell Variables] 问题 在哪设置JAVA_HOME,让所有用户皆可使用 按上面的设置后,rc.local中 执行以下命令可否成功 /usr/local/apache-tomcat/bin/start.sh 环境变量要注意的 变量需要export才能被子进程看到(成为环境变量) 大部分的环境变量在login时被设置 要注意locale对程序输入输出的影响 数值运算 运算工具 let, expr (( ))? bc 常用运算 + - * / % (加,减,乘,除,取模)? 更详细内容:man bash: [ARITHMETIC EVALUATION] 管道与here doc bc支持浮点数运算 但bc是交互式的, 怎么办? 流程控制 条件判断 if case 循环 for, while break, continue if ... then if ... 语句用于判断一个/一组命令是执行否成功 [[ ]] 表达式,测试字符串,文件 (( )) 表达式,测试数值计算结果 bash命令,测试命令是否执行成功 命令的退出码( $? )为0时,代表true 字符串测试 文件测试 更详细内容 man bash [CONDITIONAL EXPRESSIONS] if ... else ... 命令的退出状态 检查 $? 的值是否为0, 0为真,非0为假 case case中的字符匹配 * 匹配零个或多个任意字符 ? 匹配一个任意字符 [ ] 字符组,可以匹配组中的一个字符 | A|B, A或者B case中的字符匹配 while循环 统计行数 for循环 for循环 重定向 一个进程运行时,内核为其准备三个默认文件句柄 STDIN (0), STDOUT(1), STDERR (2) 块重定向-1 块重定向-2 函数 调用: 需要先定义后调用。名字+参数 参数: $1, $2 ... $#, $@ 返回值: 标准输出 退出状态: return $num;或最后一个命令的退出状态 注意 函数必须先定义,后使用 函数 判断OS 关于函数的建议 函数名要具可读性,从名字即能看出功能 函数尽量精练,只完成单一功能 尽量使用局部变量

文档评论(0)

zhuliyan1314 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档