简介
关于shell编程中的流程控制条件判断和循环的使用
if判断
单分支
语法
if [条件表达式]
then
运行程序
fi
fi是结束if语句。
简单例子:
if [ $a -gt 1 ]
then
echo "a 大于1"
fi
运行结果:
多条件判断
&&:
if [ $a -lt 5 ] && [ $a -gt 1 ]
then
echo "a大于1小于5"
fi
运行结果:
也可以使用 -a 来写,||是使用-o
if [ $a -lt 5 -a $a -gt 1 ]; then echo "a大于1小于5"; fi
运行结果:
多分支判断
语法
if [ 判断条件 ]
then
程序
elif [ 判断条件 ]
then
程序
else
程序
fi
脚本例子
vim编辑d.sh脚本文件
#! /bin/bash
if [ $1 = 1 ]
then
echo "1"
elif [ $1 = 2 ]
then
echo "2"
else
echo "3"
fi
使用 . d.sh 参数
运行脚本
case语句
语法
case $变量名 in
“值1”)
程序
;;
“值2”)
程序
;;
*)
程序
;;
esac
脚本例子
vim编写脚本d.sh
#! /bin/bash
case $1 in
1)
echo "1"
;;
2)
echo "2"
;;
3)
echo "3"
;;
*)
echo "else"
;;
esac
使用. d.sh
运行脚本
for循环
语法1
for((初始值;条件;值的变化))
do
程序
done
脚本例子
vim编辑f.sh脚本
#!/bin/bash
sum=0
for(( i=1;i <= $1;i++))
do
sum=$[ $sum + $i ]
done
echo $sum
. f.sh 100
运行
语法2
for 变量 in 值1 值2 值3
do
程序
done
循环一个数组
例子1
for i in a b c d;do echo $i;done
例子2
for i in {1..100};do sum=$[ $sum + $i ];done;echo $sum
例子3
编辑e.sh脚本
#!/bin/bash
for i in $*
do
echo $i
done
echo "-----------"
for i in $@
do
echo $i
done
运行脚本 . e.sh 1 2 3 4
注意: $* 和 $@ 虽然都是获得全部的输入参数,但是 ,当加上“”的时候, " $ *" 获得的是一个整体,"$@"获得的是一个数组
while循环
语法
while [ 条件判断 ]
do
程序
done
脚本例子
vim编辑一个g.sh脚本
#!/bin/bash
a=1
while [ $a -le $1 ]
do
sum=$[ $sum + $a ]
a=$[ $a + 1 ]
done
echo $sum
. g.sh 100
运行脚本
也可以使用let改写脚本
#!/bin/bash
a=1
while [ $a -le $1 ]
do
let sum+=a
let a++
done
echo $sum