Shell脚本学习——基础语法阶段二

一.条件语句(如C语言中的 if else)

Shell脚本if else嵌套的原理和C语言相似

if [ 条件 ]  
then
	
else
fi			#一个if结尾不能少了fi

Demo:

#!/bin/bash
echo "Please Input you Data"
read data

if [ $data -gt 0 -a $data -lt 100 ]
then
        echo "Yes , data in [0-100]"
else
        echo "error"
fi

在这里插入图片描述

二.选择语句 case

case "条件" in
	*)
		;;
	*)
		;;
esac

Demo:

条件判断中 通过 管道 | 可以实现多结果判断

#!/bin/bash
echo "请输入数据"
read data
case "$data" in
        yes | Y | Yes | YES | YEs) echo "good"
                ;;
        y) echo "nice"
                ;;
        no) echo "fuck"
                ;;
        n) echo "shift"
                ;;
        *) echo "error"
                ;;              # 可省略最后的 ;;

esac    # 和 if fi 一样,必备成套的
exit 0

在这里插入图片描述

三.循环语句 for 和 while

(1)while循环

结构:

while [条件]
do
	#	代码执行段
done

死循环while为:

while true
do
	#	代码执行段
done

Demo1:

#!/bin/bash
I=0

while [ $I -lt 5 ]
do
        I=`expr $I + 1`
        echo -n "Please student score: "
        read S
        case `expr $S / 10` in
                10|9)
                        echo "The Student : A"
                        ;;
                6|7|8)
                        echo "The Student : B"
                        ;;
                *)
                        echo "The Student : C"
                        ;;

        esac
        echo "I=$I"
done

在这里插入图片描述

Demo2:

#!/bin/bash
I=0
while true
do
        I=`expr $I + 1`
        echo -n "Please student score: "
        read S
        case `expr $S / 10` in
                10|9)
                        echo "The Student : A"
                        ;;
                6|7|8)
                        echo "The Student : B"
                        ;;
                *)
                        echo "The Student : C"
                        ;;
        esac
        echo "I=$I"
done

在这里插入图片描述

(2)for循环

结构:

for * in 条件
do
done
for(( *; *;* ))
do
done

Demo:

#!/bin/bash
sum=0
echo "-----------------------------"
for I in `seq 1 10`
do
        echo "I=$I"
        sum=`expr $I + $sum`
done
echo "sum = $sum"

echo "-----------------------------"
for ((I = 1 ; I <= 10 ; I++))
do
        echo "I = $I"
done

echo "-----------------死循环-------------"
for((;;))
do
        echo "si le"
        sleep 5s
done

在这里插入图片描述

(3)break 和 continue

break n ( n 表示跳出的层数 )

Demo1:

if [ $# -lt 5 ]
then
        exit
fi

echo "---------------------------------"
for I
do
        if [ `expr $I % 2` -eq 1 ]
        then
                echo "I=$I"
        else
                continue
        fi
done
echo "---------------------------------"
for I
do
        if [ `expr $I % 2` -eq 1 ]
        then
                echo "I=$I"
        else
                break
        fi
done

在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值