shell 中循环语句学习

linux shell for 循环语句

1 linux shell for 循环一数组

[root@localhost ~]#more test.sh
#!/bin/sh
for i in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
do
echo $i
done


2 linux shell for 循环shell命令

#!/bin/sh
for name in ‘ls’
do
if [ -f $name ] ; then
echo ‘$name 是一个文件’
elif [ -d $name ]; then
echo ‘$name 是一个文件夹’
fi
done


macos 下执行失败


3 linux shell for 接收参数循环

当for语句后没有in时 ,in后面的参数类似于 #@ , shell中接收参数
[root@localhost ~]$ more test.sh
#!/bin/sh
for name
do
echo $name
done


[root@localhost ~]$ ./test.sh 6 7 8 9 01 13 45
6
7
8
9
01
13
45

4 linux shell until循环

until 循环的功能为:检测到当前条件为真时候(echo $?=0时),停止循环,执行下一条命令
[root@localhost ~]#more test.sh
#!/bin/sh
until [ -f b.txt ]
do
sleep 1
echo ‘未检测到b.txt!’
done
echo ‘检测到b.txt文件!’

5 linux shell while 循环

例:
[root@localhost]$ more test.sh
#!/bin/sh
while read a
do
echo 变量a的值:$a
done
echo ‘while 循环结束!’
//此循环的功能就是从命令提示符中获取用户读取的变量,并打印在屏幕上

6 linux shell break continue 控制循环

[root@localhost ~]$ more test.sh
#!/bin/sh
while read a
do
echo 变量a的值:$a
if [ $a -eq 120 ]; then
break; //如果输入值等于120时,跳出while循环
fi
done
echo ‘while 循环结束!’


[root@localhost ~]$ ./test.sh
1
变量a的值:1
2
变量a的值:2
3
变量a的值:3
120
变量a的值:120
while 循环结束!


[root@localhost ~]$ more test.sh
#!/bin/sh
for ((i=0;i<20;i=$i+1)) do echo $i if [ $i -lt 10 ];then echo '' continue; fi echo '这是一个两位数。' done
0
1
2
3
4
5
6
7
8
9
10这是一个两位数。
11这是一个两位数。
12这是一个两位数。
13这是一个两位数。
14这是一个两位数。
15这是一个两位数。
16这是一个两位数。
17这是一个两位数。
18这是一个两位数。
19这是一个两位数。

7 linux shell if 语句

例:if编写的成绩判断
[root@localhost ~]$ more test.sh
#!/bin/sh
echo $1

if [ $1 -lt 0 ] ;then
echo ‘无等级’
elif [ $1 -lt 60 ] ;then
echo ‘未及格’
elif [ $1 -lt 70 ] ;then
echo ‘及格’
elif [ $1 -lt 80 ] ;then
echo ‘成绩优秀’
elif [ $1 -lt 90 ] ;then
echo ‘成绩A’
elif [ $1 -le 100 ] ;then //else if 语句
echo ‘成绩A+’
else
echo ‘未知信息’
fi //if结束居于

[root@localhost ~]$ ./test.sh 60
60
及格
[root@localhost ~]$ ./test.sh 50
50
未及格
[root@localhost ~]$ ./test.sh 123
123
未知信息
[root@localhost ~]$ ./test.sh 100
100
成绩A+
[root@localhost ~]$ ./test.sh 90
90
成绩A+


8 linux shell case 语句

[root@localhost ~]#more test.sh
#!/bin/sh
read a //接收输入
echo “输入信息:” $a

case $a in
1) echo “输入字符为 1”;; //双引号结束一个输入
a) echo “输入字符为a”;;
2) echo “输入为2”;;
*) echo “输入为其它字符”;; *) //类似于case 里面的default

esac //case 结束语句