目录
- Shell 学习(三)--流程控制
- 1 if判断
- 2 case 语句
- 3 for循环
- 4 while 循环
Shell 学习(三)--流程控制
1 if判断
- 基本语法
if [ 条件判断式 ];then
程序
fi
或者
if[ 条件判断式 ]
then
程序
elif[ 条件判断式 ]
then
程序
fi
注意事项:(1) [ 条件判断式 ],中括号和条件判断式之间必须要有空格。(2) 推荐使用第二种方式
?
- 应用实例
案例: 编写一个shell程序,请输入参数,大于等于60,则输出“及格了”,如果小于60,则输出“不及格”
#!/bin/bash
if [ $1 -ge 60 ]
then
echo "及格了"
elif[ $1 -lt 60]
then
echo "不及格"
fi
2 case 语句
- 基本语法
这个case语法很不一样,我开始很不习惯,有点像C的感觉
case $变量名 in
"值1")
如果变量的值等于值1,则执行程序1
;;
"值2")
如果变量的值等于值2,则执行程序2
;;
···省略其他分支···
*)
如果变量的值都不是以上的值,则执行此程序
;;
esac
- 应用实例
案例:当命令行参数是1时,输出“周一”,当参数是2时,输出“周二”,其他情况输出other。
#!/bin/bash
case $1 in
"1")
echo "周一"
;;
"2")
echo "周二"
;;
*)
echo "other"
;;
esac
3 for循环
- 基本语法1
for 变量 in 值1 值2 值3 ..
do
程序
done
应用实例
打印命令行输入的参数[会使用到$* 和[email protected]]
#!/bin/bash
#使用$*
for i in "$*"
do
echo "the num is $i"
done
echo "====="
#使用[email protected]
for j in "[email protected]"
do
echo "the num is $j"
done
执行后为这样:
- 基本语法2
这个语法就很像java中的for循环
for((初始值;循环控制条件;变量变化))
do
程序
done
应用实例:从1加到100的值输出显示
但是这个很奇怪,前面判断条件都是用-gt -ge 来着。这里可以直接用<=
#!/bin/bash
#定义一个变量
SUM=0
for((i=0;i<=100;i++))
do
SUM=$[$SUM+$i]
done
echo "sum=$SUM"
4 while 循环
- 基本语法
while [ 条件判断式 ]
do
程序
done
应用实例
案例:从命令行输入一个数n,统计从1+...+n 的值是多少
#!/bin/bash
SUM=0
i=0
while [$i -le $1]
do
SUM=$[$SUM+$i]
i=$[$i+1]
done
echo "sum=$SUM"
原文地址:https://www.cnblogs.com/jianshuai520/p/11806881.html
时间: 2024-10-02 16:24:32