脚本中的语句控制器
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