【Linux】shell 脚本条件判断、函数、循环

shell 脚本条件判断

我们可以用 && 和 || 进行简单的条件判断,但是复杂场合并不适用,因此 shell 脚本提供了条件判断语句。

if 条件判断;then
//判断成立要做的事情
fi

if [ "$value" == "y" ] || [ "$value" == "Y" ]; then
	echo "your input is y "
	exit 0
fi 
if [ "$value" == "n" ] || [ "$value" == "N" ]; then  
	echo "your input is n "
	exit 0
fi

在这里插入图片描述
在这里插入图片描述

if 条件判断;then
//判断成立要做的事情
else
//判断不成立要做的事情
fi

if [ "$value" == "y" ] || [ "$value" == "Y" ]; then
	echo "your input is y "
	exit 0
else   
	echo "your input is $value "
	exit 0
fi

在这里插入图片描述
在这里插入图片描述

if 条件判断;then
//判断成立要做的事情
elif 条件判断;then
//判断不成立要做的事情
else
fi

#!/bin/bash

read -p "please input (y/n):" value

if [ "$value" == "y" ] || [ "$value" == "Y" ]; then
    echo "your input is y "
    exit 0
elif [ "$value" == "n" ] || [ "$value" == "N" ]; then
    echo "your input is n "
    exit 0
else
    echo "your input is error "
    exit 0
fi

在这里插入图片描述
在这里插入图片描述

case $变量 in
“第1个变量内容”)
程序段
;;//表示该程序块结束 !
“第2个变量内容”)
程序段
;;
“第n个变量内容”)
程序段
;;
esac

在这里插入图片描述
在这里插入图片描述
我们发现,当输入的参数为 x 时,并没有显示 error ,因为通配符 * 使用错了,做如下修改;
在这里插入图片描述
在这里插入图片描述

#!/bin/bash

case $1 in
    "a")
        echo "param is a "
        ;;
    "b")
        echo "param is b "
        ;;
    *)
        echo "error "
        ;;  
esac

shell 脚本函数

shell 脚本支持函数,而且可以自定义函数;

(function) 函数名() {
//函数代码段
}
function 可写可不写

#!/bin/bash

function help() {
    echo "this is help cmd ! "
}
function close() {
    echo "this is close cmd ! "
}

case $1 in
    "-h")
        help
        ;;
    "-c")
        close
        ;;
esac

在这里插入图片描述
在这里插入图片描述
shell 脚本函数也支持传参;

#!/bin/bash

function print() {
    echo "param 1:$1 "
    echo "param 2:$2 "
}

print a b

在这里插入图片描述
在这里插入图片描述

shell 脚本循环

shell脚本也支持循环,比如 while do done,until do done,for 循环;

while do done,表示当条件成立的时候就一直循环,直到条件不成立;
while [条件] //括号内的状态是判断式
do //循环开始
//循环代码段
done

#!/bin/bash

while [ "$value" != "close" ]
do
    read -p "please input string:" value
done

echo "you input close -> stop "

在这里插入图片描述
在这里插入图片描述

until do done,表示条件不成立的时候循环,条件成立以后就不循环了
until [条件]
do
//循环代码段
done

#!/bin/bash

until [ "$value" == "close" ]
do
    read -p "please input string:" value
done

echo "you input close -> stop "

在这里插入图片描述
在这里插入图片描述
for 循环有两种写法;

写法一:for 循环知道有循环次数写法
for var in con1 con2 con3……
do
//循环代码段
done

#!/bin/bash

for name in z zz zzz
do
    echo " your name : $name "
done

echo " for stop "

在这里插入图片描述
在这里插入图片描述

写法二: for 循环数值处理写法
for(( 初始值;限制值;执行步长 ))
do
//循环代码段
done

#!/bin/bash

read -p "please input count num : " count

total=0

for((i=0; i<=count; i=i+1 ))
do
    total=$(($total+$i));
done

echo " 1+2+3...+$count=$total "

在这里插入图片描述
在这里插入图片描述

  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值