shell--脚本中的语句控制器

脚本中的语句控制器

exit n    ## 脚本退出,退出值为n
break     ##退出当前循环
continue  ##提前结束循环内部的命令,但不终止循环

以一个简单的例子看循环

vim /mnt/test.ah

#!/bin/bash
for NUM in {1..10}
do
    [ "$NUM" -eq "5" ]&&{
            echo westos
    }
    echo $NUM
done
chmod +x /mnt/test.sh
sh test.sh

在这里插入图片描述
在这里插入图片描述
1】exit 0 ##直接结束脚本

vim /mnt/test.sh

#!/bin/bash
for NUM in {1..10}
do
    [ "$NUM" -eq "5" ]&&{
            echo westos
            exit 0
    }
    echo $NUM
done
echo end
测试:
sh test.sh    ##直接在NUM=5,输出westos时结束

在这里插入图片描述
在这里插入图片描述
【2】break

vim /mnt/test.sh

#!/bin/bash
for NUM in {1..10}
do
     [ "$NUM" -eq "5" ]&&{
             echo westos
             break
     }
     echo $NUM
done
echo end         ##在NUM=5,时,退出for循环,但并不退出整个脚本,依然执行echo end
测试:
sh test.sh

vim /mnt/test.sh
在这里插入图片描述
在这里插入图片描述
【3】continue

vim /mnt/test.sh

#!/bin/bash
for NUM in {1..10}
do
     [ "$NUM" -eq "5" ]&&{
             echo westos
             continue   ##当NUM=5时,输出westos,由于提前结束内部循环,所以不执行echo $	NUM	,所以不输出5
     }
     echo $NUM
done
echo end         

vim /mnt/test.sh
在这里插入图片描述
在这里插入图片描述
运算方式及运算符号
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
[1]let
在这里插入图片描述
expr
在这里插入图片描述
[2]bc计算器
在这里插入图片描述
[3]:$[ ]
在这里插入图片描述
【4】 利用(()) 进行赋值运算

简单例子看循环
vim test.sh

#!/bin/bash
for ((I=1;I<=10;I++))   ##当I不满足条件时即I>10时,结束循环
do
    echo $I 
done
测试:
sh test.sh 

在这里插入图片描述
在这里插入图片描述
看(())循环

  echo $((1+1))
  westos=3
  echo $((westos+=1)) ##多次执行看效果

在这里插入图片描述
脚本:vim test.sh

#!/bin/bash
for ((I=1;I<=10;I++))
do
    ((J+=I))     ##J=J+I
    echo $J

done
测试:
sh test.sh   ##效果看截图          

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

制作计算器
编写脚本要求:

 执行Calculator.sh 后显示
 请输入你要操作的数:
 请输入要操作的运算:
 请输入要操作的第二个数:
 >>执行后显示操作后的数值<<

vim /mnt/Calculator.sh

#!/bin/bash
read -p "Please input first number: " NUM1
read -p "Please input Action: " Action
read -p "Please input second number: " NUM2
if [ -z "$NUM1" -o -z "$Action" -o -z "$NUM2" ]
then
    echo "Please input messages!!!"
fi
bc <<EOF
$NUM1 $Action $NUM2
EOF
测试:
sh /mnt/Calculator.sh 

在这里插入图片描述
在这里插入图片描述
时间倒计时

编写脚本要求:

 用shell语句写一个1分10秒的倒计时脚本

vim time.sh

#!/bin/bash
SEC=10   ##定义10秒
MIN=1     ##定义1分
All_SEC=$[MIN*60+SEC]
for((;All_SEC>0;All_SEC--))
do
    SEC=$[$All_SEC%60]
    MIN=$[$All_SEC/60]
    echo -ne  "After $MIN:$SEC is end "
    echo -ne "\r"
    sleep 1
done

sh time.sh

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值