运算方式及运算符号
运算符号 意义( * 标示常用)
+,- 加法,减法
*,/,% 乘法,除法,取余
** 幂运算
++ , -- 自增加,自减少
<,<=,>,>= 比较符号
= , += , -= , *= , /= , %= 赋值运算
例如 a+=1 相当于 a=a+1
SHELL 中常用的运算命令
运算操作与运算命令 含义
(()) 用于整数运算
let 用于整数运算,与 (()) 类似
expr 用于整数运算,功能相对较多
bc inux 下的计算器,适合整数及小数运算
$[] 用于整数运算
vim test.sh
#!/bin/bash
for ((i=1;i<10;i++))
do
echo $i
done
例:编写脚本
1.请用运算和已经学过的 shell 语句写一个 10 秒倒计时的脚本
#!/bin/bash
for ((i=10;i>0;i--)) ###从10数到1
do
AA=$[$i/60] ####除60秒
BB=$[$i%60] ###对60取余
echo -ne "\r$AA:$BB \r"
sleep 1 ###每隔1秒显示一次
done
2.请用运算和已经学过的 shell 语句写一个 1 分 10 秒倒计时的脚本
第一种方法
PRINT_MESSAGE() ###定义一个每隔一秒显示的函数
{
echo -n "$MIN:$SEC"
sleep 1
echo -ne "\r \r"
}
MIN=1 ###定义1分钟
SEC=10 ###定义10秒
for ((;SEC>=0;SEC--))
do
[ "$SEC" = "0" -a "$MIN" = "0" ]&& exit 0
[ "$SEC" = "0" -a "$MIN" -gt "0" ]&&{
PRINT_MESSAGE ###调用函数
((MIN--))
SEC=59
}
PRINT_MESSAGE ###调用函数
done
第二种方法
#!/bin/bash
read -p "please a minute: " m ###输入分钟数
read -p "please a second: " s ###输入秒数
j=$[m*60+s]
for ((i=j;i>0;i--))
do
AA=$[$i/60]
BB=$[$i%60]
echo -ne "\r$AA:$BB \r"
sleep 1
done
3.利用以上命令制作一个计算器要求如下
执行 Calculator.sh 后显示
请输入您要操作的数字:
请输入要操作的运算:
请输入要操作的第二个数字 :
执行后显示操作后的数值
#!/bin/bash
read -p "please input the first number: " NUM_1
read -p "please input the action: " ACTION
read -p "please input the second number:" NUM_2
bc <<EOF
$NUM_1$ACTION$NUM_2
EOF