07-shell-流程控制

目录

if语句

for循环

while语句

until循环

case语句

跳出循环


if语句

  格式

# if语句
if condition
then
    command1 
    command2
    ...
    commandN 
fi


# if else
if condition
then
    command1 
    command2
    ...
    commandN
else
    command
fi

# if else-if else

if condition1
then
    command1
elif condition2
then    
    command2
else
    commandN
fi

  示例

#!/bin/bash


a=1

if [ $a == 1 ]
then
    echo $a等于1
fi


# then可以不换行,前面要要加分号(;)
if [ $a == 1 ];then
    echo $a等于1
fi


# if else
if [ $a == 2 ]
then
    echo $a等于2
else
    echo $a不等于2
fi


# if elif else
if [ $a == 2 ];then
    echo $a等于2
elif [ $a -eq 1 ];then
    echo $a等于1
else
    echo $a不等于1也不等于2
fi

for循环

 格式

for var in item1 item2 ... itemN
do
    command1
    command2
    ...
    commandN
done

 示例

#!/bin/bash

# 定义一个数组
num_list=(1 3 5 7 9)

# ${num_list[@]} 获取数组中所有值
for num in ${num_list[@]}
do
    echo $num
done

# do可以不换行,前面分号(;)隔开
for num in ${num_list[*]};do
    echo $num
done

while语句

 格式

while condition
do
    command
done

 示例

#!/bin/bash

int=1
while(( $int<=5 )) 
do        
echo $int         
let "int++"
done 

until循环

 格式

until condition
do
    command
done

  示例

#!/bin/bash

n=1
# 打印1-4
until [ $n -ge 5 ]; do
    echo $n
    let "n++"
done

case语句

格式

case 值 in
模式1)
    command1
    command2
    ...
    commandN
    ;;
模式2)
    command1
    command2
    ...
    commandN
    ;;
esac

示例

#!/bin/bash

num=6
case $num in
    1)  echo '你选择了 1'
    ;;
    2)  echo '你选择了 2'
    ;;
    3)  echo '你选择了 3'
    ;;
    4)  echo '你选择了 4'
    ;;
    *)  echo '你没有输入 1 到 4 之间的数字'
    ;;
esac


# 多个条件可以写一起
num=6
case $num in
    1|2|3|4)  echo '你选择了 1-4任意的数字'
    ;;
    *)  echo '你没有输入 1 到 4 之间的数字'
    ;;
esac

跳出循环

#!/bin/bash


# break 退出所有循环
num_list=(1 3 5 7 9 11)

for num in ${num_list[@]};do
    if [ $num -gt 8 ];then
        echo $num大于8,退出循环
        break
    else
        echo $num小于8
    fi
done


# continue 退出当前循环,开始下次循环
for num in ${num_list[@]};do
    if [ $num -gt 8 ];then
        echo $num大于8,退出循环
        continue
    else
        echo $num小于8
    fi
done

猜你喜欢

转载自blog.csdn.net/IT_heima/article/details/121010672