【shell编程学习】for 和 while循环

一、for命令

1.1  格式如下:

for var in list

do

commands

done

或者

for var in list;do

commands

done

var从list依次取出数值,执行command的命令。注意默认是以空格,tab,换行符作为分界


1.2  更改字段分隔符

由于bash默认以空格,tab和换行符作为字段分隔符。
可以通过修改shell脚本的IFS环境变量来限制分隔符。比如如果只要求通过冒号进行分隔符分割,按如下方式修改

IFS=$':'

如果需要多种分隔符,如冒号、双引号、换行符均作为分隔符,如下方式修改

IFS= $':"\n'

保险起见,可以先保存IFS原先的值,改完之后还原就可。


1.3 用通配符读取目录

如:

for  var in $HOME/*

do

if [ -d $var ];then

echo "$var is a dirtory"

elif [ -f $var ];then

echo "$var is a file"

fi

done

上述代码会取出HOME下所有的文件进行匹配。需要注意的是,对于文件或目录名存在空格的,脚本里要注意判断,否则出错


1.4 c语言风格的for循环

格式如下(括号前后有空格):
 for ((  variable assignmen; condition; process ))

 do

commands

 done

for(( i=1;i<10;i++ ))

跟bash shell的for命令标准有以1下区别;

1、引用变量时未加美元符

  2、数值计算时未使用expr,直接运算


二、while命令

2.1 格式

while test command

do

commands

done

或者(注意[]有空格)

while [ condition ]

do

commands

done


三、until命令

3.1 格式

until test command

do

command

done

或者(注意[]有空格)

until [ condition ];do

commands

done


四、控制循环

跟C语言一样,break跳出循环,continue结束本次循环

4.1  break命令
4.2  continue命令




你可能感兴趣的:(shell笔记)