Linux Shell(二).pptVIP

  • 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想在同一

文档评论(0)

1亿VIP精品文档

相关文档