shell循环语句
所有的笔记只记录一些例子,根据例子解释一些出现的语法,不介绍具体的语法
2015-07-01 21:58:33 星期三
for循环
- 用例一
用for循环在家目录下创建aaa1-aaa10,然后在aaa1-aaa10创建bbb1-bbb10的目录#!/bin/bash
for k in $(seq 1 10)
do
mkdir /home/hxy/aaa${k}
cd /home/hxy/aaa${k}
for i in $(seq 1 10)
do
mkdir bbb${i}
done
done
seq 用于产生从某个数到另外一个数之间的所有整数
用例二
#!/bin/bash
DIR="/var"
cd $DIR
for k in $(ls $DIR)
do
[ -d $k ]&& du -sh $k
done
-d 判断是否为目录
或者
vi getdu.sh
#!/bin/bash
DIR=$1
if [ -d $DIR ];then
cd $DIR
for k in $(ls $DIR)
do
[ -d $k ]&& du -sh $k
done
else
echo $1" is not a directory!!"
fi
使用,加入一个判断
[root@oracle ~]# sh getdu.sh a
a is not a directory!!
[root@oracle ~]# sh getdu.sh /var
4.0K account
15M cache
4.0K crash
4.0K cvs
12K db
8.0K empty
8.0K ftp
4.0K games
4.0K gdm
64M lib
4.0K local
20K lock
7.3M log
0 mail
4.0K nis
4.0K opt
4.0K preserve
284K run
1.8M spool
8.0K tmp
12K yp
while循环
用例一
[root@oracle ~]# cat a.txt
aaa
bbb
ccc
ddd
[root@oracle ~]# cat while.sh
#!/bin/bash
while read line
do
echo ${line}
done < a.txt
输出
[root@oracle ~]# sh while.sh
aaa
bbb
ccc
ddd
用例二
[root@oracle ~]# cat sum.sh
declare -i i=1
declare -i sum=0
while ((i<=10))
do
let sum=sum+i
let ++i
done
echo $sum
[root@oracle ~]# sh sum.sh
55
declare -i 声明i和sum为整数类型
until循环
[root@oracle ~]# cat sum.sh
declare -i i=1
declare -i sum=0
until ((i>10))
do
let sum=sum+i
let ++i
done
echo $sum
[root@oracle ~]# sh sum.sh
55
until条件为假才执行
笔记