shell计算(一)

说明:该篇主要是'算数运算命令''(())'的用法

强调:'方法很多,精通一种即可,能看懂其他的即可'

一    算数运算符

二     算数运算命令

三    实战

(1)基础语法

(2)简单数值计算

 

(3)混合计算

'需求':计算1+2...+100的和

细节:'(())'里面两端可以有任何的空格,为了增强'可读性',一般'两端各留一个空格',变量和运算符有无空格也无所谓

(4)特殊运算

说明:在(())中'使用变量'可以去掉'变量前的$符号',但是加上$符号也不会出错,但是'输出计算结果时必须加上$'

(5)比较和判断

#!/bin/bash
if (( 3>2 && 8==8 ));then
    echo "Hello Java"
fi

说明两点

(1)大小比较的结果--->从'自己理解角度'(boolean,恰恰与实际相反)-->'1表示真,0表示假'

(2)涉及的数字和变量必须是整数,因为(())'只针对整数计算的'

(5)++和--特殊运算符

备注:'从左到右执行,碰到符号则计算'

(6)小脚本计算加减乘除

#!/bin/bash
# (1)脚本传参进行赋值
a=$1
b=$2
# (2)计算
echo "a+b=$(( a+b  ))"
echo "a-b=$(( a-b  ))"
echo "a*b=$(( a*b  ))"
echo "a/b=$(( a/b  ))"
echo "a%b=$(( a%b  ))"
echo "a**b=$(( a**b  ))"

(7)增强上面案例的健壮性

#!/bin/bash
set -u
# (1)不符合要求,打印提示信息
print_usage(){
    # 非整数
    printf "Please enter an interger\n"
    # 退出
    exit 1
}

# (2)read接受参数,并给予提示信息

read -p "Please input first number: " firstnum

# (3)判断用户输入是否是整数(-n判断字符串否是非空)

if [ -n "`echo $firstnum| sed 's#[0-9]##g'`"  ];then
    # 如果是非空表示输入的不是整数,则打印提示信息,并退出
    print_usage
fi

# (3)继续输入运算符

read -p "Please input the operations: " operations

if [ "${operations}" != "+" ] && [ "${operations}" != "-" ] && [ "${operations}" != "*" ] && [ "${operations}" != "/" ];then
    echo "Please use one of {+|-|*|/} "
    exit 2
fi

# (4)判断用户输入是否是整数

read -p "Please input secondnumber: " secondnum

if [ -n "`echo $secondnum| sed 's#[0-9]##g'`"  ];then
    # 如果是非空表示输入的不是整数,则打印提示信息,并退出
    print_usage
fi

# (5)最终的计算

echo ""${firstnum}${operations}${secondnum}=$(( firstnum ${operations} secondnum))

 报错提示

这种方式'报错',印证了一点'只有数字变量可以不加$'

echo ""${firstnum}${operations}${secondnum}=$(( firstnum operations secondnum))

 

掌握知识

(1) 判断用户输入是否是整数

(2) read变量读取外部的参数

set -u 用法

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值