目录
一、循环结构语句
Shell常见的循环语句有for循环、while循环和until循环语句。
1、for循环
语法结构:
for 变量 in 列表
do
操作
done
列表是在for循环的内部要操作的对象,可以是字符串也可以是文件,如果是文件则为文件名。
1.1、实例1
编写一个Shell程序test11,功能是将列表中的值:a,b,c,e,I,2,4,6,8用循环的方式把字符和数字分开两行输出。
#! /bin/bash
for i in a,b,c,e,I 2,4,6,8
do
echo $i
done
注意:循环中列表中的空格可表示换行。
执行结果如下:
1.2 实例2
编写一个Shell程序test12,功能是删除指定文件夹中的所有文件。
#! /bin/bash
for i in /mnt/d/test/trash/*
do
rm $i
echo "$i has been deleted!"
done
执行结果如下:
1.3、实例3
编写一个Shell程序test13,功能是求1~100的加和。
#! /bin/bash
total=0
for((i=1;i<=100;i++));
do
total=`expr $total + $i`
done
echo "The result is $total"
执行结果如下:
注意: for语句中的双括号不能省略,最后的分号可有可无,表达式expr中“+”两侧的空格不能省,否则会成为字符串的连接。
2、while循环
语法结构:
while
do
操作
done
只要表达式为真,do和done之间的操作就一直会进行。
2.1、实例1
编写一个Shell程序test14,功能是求1~100的加和。
#! /bin/bash
total=0
num=0
while((num<=100));
do
total=`expr $total + $num`
num=`expr $num + 1`
done
echo "The result is $total"
执行结果如下:
3、until循环
语法结构:
until 表达式
do
操作
done
重复do和done之间的操作直到表达式成立为止。
3.1 实例1
编写一个Shell程序test15,功能是求1~100的加和。
#! /bin/bash
total=0
num=0
until [ $num -gt 100 ]
do
total=`expr $total + $num`
num=`expr $num + 1`
done
echo "The result is $total"
执行结果如下:
二、条件结构语句
Shell程序中的条件语句主要有if语句与case语句。
1、if语句
语法结构:
if 表达式1 then
操作
elif 表达式2 then
操作
elif 表达式3 then
操作
……
else
操作
fi
Linux中的if的结束标志是将if反过来写成fi,而elif其实是else if的缩写。其中,elif理论上可以有无限多个。
1.1、实例1
编写一个Shell程序test16,功能是输出1~10之间的奇数。
#! /bin/bash
for((i=0;i<=10;i++));
do
if (($i%2==1))
then
echo "$i"
fi
done
执行结果如下:
2、case语句
语法结构:
case 表达式 in
值1|值2)
操作;;
值3|值4)
操作;;
值5|值6)
操作;;
*)
操作;;
esac
case的作用是当字符串与某个值相同时就执行那个值之后的操作。如果同一个操作对于多个值,则使用“|”将各个值分开,在case的每一个操作的最后面都有两个"; ;"分号是必需的。
2.1、实例1
编写一个Shell程序test17,功能是根据不同的用户登录输出不同的反馈结果。
#! /bin/bash
case $USER in
administrator)
echo "You are administrator!";;
user1)
echo "You are user1!";;
root)
echo "You are root!";echo "Welcome!";;
*)
echo "Who are you?";;
esac
执行结果如下: