shell循环语句
所有的笔记只记录一些例子,根据例子解释一些出现的语法,不介绍具体的语法
2015-07-01 21:58:33 星期三
for循环
- 用例一
用for循环在家目录下创建aaa1-aaa10,然后在aaa1-aaa10创建bbb1-bbb10的目录#!/bin/bashfor k in $(seq 1 10)domkdir /home/hxy/aaa${k}cd /home/hxy/aaa${k}for i in $(seq 1 10)domkdir bbb${i}donedone
seq 用于产生从某个数到另外一个数之间的所有整数
用例二
#!/bin/bashDIR="/var"cd $DIRfor k in $(ls $DIR)do[ -d $k ]&& du -sh $kdone
-d 判断是否为目录
或者
vi getdu.sh#!/bin/bashDIR=$1if [ -d $DIR ];thencd $DIRfor k in $(ls $DIR)do[ -d $k ]&& du -sh $kdoneelseecho $1" is not a directory!!"fi
使用,加入一个判断
[root@oracle ~]# sh getdu.sh aa is not a directory!!
[root@oracle ~]# sh getdu.sh /var4.0K account15M cache4.0K crash4.0K cvs12K db8.0K empty8.0K ftp4.0K games4.0K gdm64M lib4.0K local20K lock7.3M log0 mail4.0K nis4.0K opt4.0K preserve284K run1.8M spool8.0K tmp12K yp
while循环
用例一
[root@oracle ~]# cat a.txtaaabbbcccddd[root@oracle ~]# cat while.sh#!/bin/bashwhile read linedoecho ${line}done < a.txt
输出
[root@oracle ~]# sh while.shaaabbbcccddd
用例二
[root@oracle ~]# cat sum.shdeclare -i i=1declare -i sum=0while ((i<=10))dolet sum=sum+ilet ++idoneecho $sum[root@oracle ~]# sh sum.sh55
declare -i 声明i和sum为整数类型
until循环
[root@oracle ~]# cat sum.shdeclare -i i=1declare -i sum=0until ((i>10))dolet sum=sum+ilet ++idoneecho $sum[root@oracle ~]# sh sum.sh55
until条件为假才执行
笔记

浙公网安备 33010602011771号