文章目录
1 if 语句
1.1 if 语句的基本语法格式
(1) 第一种格式
if [ 条件判断式 ];then
程序
fi
(2) 第二种格式
if [ 条件判断式 ]
then
程序
fi
注意事项:
- [ 条件判断式 ] 方括号与条件判断表达式之间必须有空格
- if后要有空格
1.2 if 语句实例
如下,判断第一个参数是不是2或者2的if判断
#!/bin/bash
if [ $1 -eq 1 ];then
echo "first is 1"
elif [ $1 -eq 2 ];then
echo "first is 2"
else
echo "first is not 1 and 2"
fi
当然then也可以单独放一行,如下
#!/bin/bash
if [ $1 -eq 1 ]
then
echo "first is 1"
elif [ $1 -eq 2 ]
then
echo "first is 2"
else
echo "first is not 1 and 2"
fi
执行调试结果如下:
$ bash test.sh 1
first is 1
$ bash test.sh 2
first is 2
$ bash test.sh 3
first is not 1 and 2
$
2 case语句
2.1 case语句的基本语法
case $变量名 in
"值1")
如果变量的值扥估值1,则执行程序1
;;
"值2")
如果变量的值等于值2,则执行程序2
;;
*)
如果变量的值都不是以上的值,则执行此程序
;;
esac
注意事项:
(1) case行尾必须为单词 “in”, 每个模式匹配必须以有括号 ")"结束
(2)双分号 ";;"表示命令序列结束,相当于其他语言中的break
(3) 最后的 “*)” 表示默认模式,相当于其他语言中的default
2.2 case语句实例
如下,判断第一个参数是否为1或2
#!/bin/bash
case $1 in
1)
echo "num is 1"
;;
2)
echo "num is 2"
;;
*)
echo "num is not 1 and 2"
;;
esac
执行结果如下:
$ bash test.sh 1
num is 1
$ bash test.sh 2
num is 2
$ bash test.sh 3
num is not 1 and 2
$
3 for 循环
3.1 for 循环基本语法
for (( 初始值;循环控制条件;变量变化 ))
do
程序
done
3.2 for 循环语句实例
(1)如下为计算1-100求和
#!/bin/bash
sum=0
for(( i=1;i<=100;i++ ))
do
sum=$[$sum+$i]
done
echo $sum
执行结果如下:
$ bash test.sh
5050
$
(2) 打印所有输入的参数
#!/bin/bash
for i in $*
do
echo $i
done
执行结果如下:
$ bash test.sh 111 222 333 444 555
111
222
333
444
555
$
(3)如下为 $* 和 $@ 的区别
#!/bin/bash
for i in $@
do
echo $i
done
echo ----------------------------
for i in $*
do
echo $i
done
echo ----------------------------
echo ----------------------------
for i in "$@"
do
echo $i
done
echo ----------------------------
for i in "$*"
do
echo $i
done
执行结果如下,可以看出,在不加引号的情况下,两者循环遍历的时候是相同的,但是当加了双引号后,两者在遍历的时候就不一样了,$*表示的是一个字符串
$ bash test.sh 111 222 333
111
222
333
----------------------------
111
222
333
----------------------------
----------------------------
111
222
333
----------------------------
111 222 333
$
4 while循环
4.1 while循环基本语法
while [ 条件判断式 ]
do
程序
done
4.2 while循环语句实例
(1)如下为计算1-100之和
#!/bin/bash
i=1
sum=0
while [ $i -le 100 ]
do
sum=$[$sum + $i ]
i=$[$i + 1]
done
echo $sum
执行结果如下:
$ bash test.sh
5050
$