首页 / 操作系统 / Linux / 在shell脚本中进行条件控制以及使用循环
if条件语句语法:if [ 条件表达式 ]then 代码else 代码fi注意:在上面的if条件语句中,if和 [ 之间要有空格,而条件表达式和两边的 [ ] 都要有空格,条件表达式不能紧挨着 [ 和 ]。if条件表达式以fi结束。Eg.结果出现了以下问题:原因是因为开头在#!后还要有一个/,加上/后解释器错误没有了,代码如下:可是仍然有没有那个文件或目录的错误。对于这个错误我觉得是echo后的表达式有问题,于是注销了表达式,改输出small和bigger,结果程序运行正确,输出了small或者bigger。所以对于echo后的表达式,我把表达式加上双引号,结果运行成功,没有问题了。利用case表达式进行条件判断:case 变量 instr1)命令串;;str2)命令串;;*)Eg.刚才之所以出错,是因为代码没有正确结尾,case条件语句在shell中应该以esca结尾。又出现错误如下:原因: *后面的)为中文符号,将它改为英文符号,并且case条件语句的结束应该为esca而不是easc,修正后如下:就正确了,正确结果如下:在shell脚本中使用for循环shell中可以使用三种循环:A、for循环第一种语法形式:
for var in listdo 命令串done注意上面的list的形式可以使用空格分隔的$1 $2 $3,或者空格分隔的值1 2 3。第二种语法形式:for vardo 命令串done在这种形式中,list被省略了,那么这时list就是指命令行参数,每次循环的var都是一个命令行参数。eg.输出命令行参数的和注意上面shell程序中echo命令的参数 -e是为了让c 和生效,其中c是表示输出加数后不换行,是退格的意思删除多余的+号。运行脚本后出现错误:原因: expr不能喝test指令的-gt婚后在一起用,要不然将expr改为test,要不然将-gt改为>=,值得注意的是>=前面要使用。仍然出错为:原因为: sum求和时,等号两端不能有空格。改为:运行后结果为:B、while循环语法格式:
while 条件表达式do 命令行串;doneeg.输出命令行每个参数shift命令将命令行参数左移,是原来处于第二位的参数变成第一位然后输出。结果为:注意while循环的条件表达式也要用空格将条件表达式与 [ 和 ]分隔开来。如果要在while中使用另一个变量n,要用 -n 的形式来表示在循环体中使用的一元表达式:当然如果while中不添加-n也有一样的结果:C、until循环语法格式如下:until 条件表达式do 命令串;done本文永久更新链接地址:http://www.linuxidc.com/Linux/2016-09/134852.htm