Shell编程之流程控制

目录

if判断

case语句

for循环

 while循环


if判断

语法:

if [ 条件判断表达式 ]

        then

                程序

elif [ 条件判断表达式 ]

         then

                程序

else

        程序

fi

注意:

  • [ 条件判断表达式 ],中括号和条件判断表达式之间必须有空格。
  • if,elif,else 后要有空格
  • if,fi 不可省略,elif,else 可省略

示例如下:

#!/bin/bash


if [ $1 == '']

  then

    echo "参数不能为空"

elif [ $1 == 1 ]

  then

    echo "输入的数字是1"

else

  echo "输入的参数是 $1"


fi

Shell编程之流程控制_第1张图片

case语句

语法:

case $变量名 in

"值1")

        程序1

;;

"值2")

        程序2

;;

。。。其他分支。。。。。。

*)

        默认执行程序

;;

esac

示例:

#!/bin/bash

case $1 in
1)
        echo "输入的值是1"
;;

2)
        echo "输入的值是2"
;;
*)
        echo "输入的值是其他值"
;;
esac

Shell编程之流程控制_第2张图片

注意:

  • 每一匹配模式必须以右括号结束;
  • 取值可以为变量或常数;
  • 匹配发现取值符合某一模式后,其间所有命令开始执行直至 ;;(类似break);
  • 取值将检测匹配的每一个模式。一旦模式匹配,则执行完匹配模式相应命令后不再继续其他模式。如果无一匹配模式,使用星号 * 捕获该值,再执行后面的命令;
  • case、in 和 esac 都是 Shell 关键字, esac就是case的反写在这里代表结束case;
  • 匹配模式: 可以是一个数字、一个字符串,或者是一个简单正则表达式;

for循环

语法1:

for(( 初始值;循环控制条件;变量变化 ))

        do

                程序

        done

示例l:求1-100累加和

#!/bin/bash

for((i=1;i<=100;i++))

  do
    s=$[$s+$i]
  done

echo $s

语法2:

for 变量 in 值1 值2 值3 .。。。。。

        do

                程序

        done

示例:输出全部参数

#!/bin/bash

for i in $*
  do
    echo "输入变量是$i"
  done

Shell编程之流程控制_第3张图片

 while循环

语法:

while [ 条件表达式 ]

        do

                程序

        done

 示例:求1-100累加和

#!/bin/bash

s=0
i=1

while [ $i -le 100 ]
do
    s=$[$s + $i]
    i=$[$i + 1]
done
echo $s

你可能感兴趣的:(shell编程,linux,运维,服务器)