- 4
- 0
- 约3.9千字
- 约 30页
- 2017-12-26 发布于河北
- 举报
Linux Shell(二)
Chapter Linux Shell 编程初步(2) 主讲:马永亮 前一章内容回顾 shell的发展过程和用途 shell变量的设置和使用 bash的基本操作方式 简单的shell脚本编辑方法 本章内容 条件测试 条件判断语句 循环语句 shell函数 调试方法 条件测试和条件判断 条件测试 整数测试 字符串测试 文件测试 组合测试条件 算术运算 if条件判断 case条件判断 条件测试 if/then结构用来判断命令列表的退出状态码是否为0(因为在UNIX惯例, 0表示“成功”), 如果成功的话, 那么就执行接下来的一个或多个命令 条件测试通常不会产生标准输出;其返回值为测试结果:“0”表示“真”(True),“1”表示“假”(False) 常可用来判断“字符串”、“整数”、“文件”等 条件测试(2) 条件测试使用方式: test expression 或 [□expression□] 或 [[□expression□]] 说明: “test”和”[“ 均为命令,”[[”是关键字 上面的形式中的□为空格,必须 整数测试 字符串测试 使用后两种方式测试时,建议字符串用双引号引起来 […]中的大于号和小于号需要转义,[[…]]则不需要 文件测试 组合测试条件 这与和||操作符很类似 和||如果用来组合测试条件,只能用于[[…]]中,而一般 -a 和 –o 是用在[…]中或test语句中 shell的算术运算 shell也可以进行简单的算术运算 格式如下: $((expression)) 或 $[ expression ] 也可以使用let命令来进行变量的算术操作,如:let SUM=3+5, let “A += 2” 条件测试中的算术测试使用方式 结果为非零的时候, 将会返回退出状态码0;反之,返回状态码1 if条件判断结构 if [ condition-true] then command … fi if [ condition-true] then command … else command … fi if [ condition1 ] then command … elif [ condition2 ] then command … else command … fi 退出和退出状态码 exit 被用来结束一个脚本, 就像在C语言中一样;它也返回一个值, 并且这个值会传递给脚本的父进程, 父进程会使用这个值做下一步的处理 成功的命令返回0, 而不成功的命令返回非零值, 非零值通常都被解释成一个错误码 脚本中的函数和脚本本身也会返回退出状态码 ,在脚本中,“ exit nnn”命令将会把 nnn退出码传递给shell( nnn必须是十进制数, 范围必须是0 - 255) 当一个脚本退出, $?保存了脚本的退出状态码, 这个退出状态码也就是脚本中最后一个执行命令的退出状态码 有些退出状态码被系统保留,有其特殊的含义 一个嵌套的if例子 case语句 case的作用和多个if/then/else语句的作用相同, 是它们的简化结构, 特别适用于创建菜单 每句测试行, 都以右小括号)来结尾 每个条件判断语句块都以一对分号结尾 case块以esac (case的反向拼写)结尾 case例子 小计算器,求两个数的加、减、乘、除; ./caculator.sh 4 + 5 #如果在命令行输入* ,需要转义 read命令 从stdin中“读取”一个变量的值, 也即是和键盘进行交互来取得变量的值 格式:read [options] VAR1 VAR2 VAR3 … 常用选项: -s 安静模式,输入的字符不显示 -p “String” 读取输入之前打印出后边的提示符 -t TIMEOUT 读取到数据前等待的时间,超时则停止 read命令也可以从重定向的文件中“读取”变量的值 如果文件中的内容超过一行, 那么只有第一行被分配到这个变量中 如果read命令的参数个数超过一个, 那么每个变量都会从文件中取得一个分配的字符串作为变量的值, 这些字符串都是以定义的空白字符来进行分隔的 一个例子 循环结构 for循环 while循环 until循环 break、continue for循环 格式: for arg in [list] do command … done 在循环的每次执行中, arg将顺序的访问list中列出的变量 list中的参数允许包含通配符 如果do和for想在同一
您可能关注的文档
- Hawthorne的个人简介.ppt
- HDMI 1 4 ARC简介.ppt
- Hibernate API一对多.ppt
- HFN-05显示.ppt
- HJ SPC培训教材.ppt
- HNC启用.ppt
- HND商务契约关系复习.ppt
- HOMEWORK(二).ppt
- How to write a notice课件.ppt
- HPLC和GC的维护.ppt
- GB 14287.2-2026电气火灾监控系统 第2部分:剩余电流式电气火灾监控探测器.pdf
- 《GB 14287.2-2026电气火灾监控系统 第2部分:剩余电流式电气火灾监控探测器》.pdf
- GB 7956.20-2026消防车 第20部分:特种底盘消防车.pdf
- 《GB 7956.20-2026消防车 第20部分:特种底盘消防车》.pdf
- 中国国家标准 GB 7956.20-2026消防车 第20部分:特种底盘消防车.pdf
- 《GB/T 22576.1-2026医学实验室 质量和能力的要求 第1部分:通用要求》.pdf
- 中国国家标准 GB/T 22576.1-2026医学实验室 质量和能力的要求 第1部分:通用要求.pdf
- GB/T 22576.1-2026医学实验室 质量和能力的要求 第1部分:通用要求.pdf
- GB/T 28029.14-2026轨道交通电子设备 列车通信网络(TCN) 第2-8部分:以太网一致性测试.pdf
- 《GB/T 28029.14-2026轨道交通电子设备 列车通信网络(TCN) 第2-8部分:以太网一致性测试》.pdf
最近下载
- 2026届新高考物理冲刺复习:电磁感应中的双杆专题.pptx VIP
- 2025成都中考数学真题及答案解析.docx VIP
- 渔业作业安全手册.pptx
- 广西钦州市2025-2026高二上学期期末教学质量检测化学试卷.pdf VIP
- 风险分级评价方法(LEC LS)课件.pptx VIP
- TSLEA 1011.2-2024 实验室设计与建设技术规范 第2部分:化学实验室.pdf
- 2025年留置看护警务辅助人员招聘综合基础知识题库.docx
- 骨科护理MDT查房.pptx VIP
- 城乡内部空间结构(第1课时)示范公开课教学课件【鲁教版高中地理必修第二册(新课标)】.pptx VIP
- 2025年成都市中考数学试题卷(含标准答案及详解).pdf
原创力文档

文档评论(0)