shell中的条件控制语句

【原文链接】shell中的条件控制语句

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
$
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

redrose2100

您的鼓励是我最大的创作动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值