shell的一些基础命令,只支持整数的运算,小数的计算需要如bc这样的命令才支持
| 运算操作符与运算命令 | 意义 |
|---|---|
| ((i=i+1)) | 此种书法方法为运算后赋值法,即将i+1的运算结果赋值给变量i。注意,不能用"echo ((i=i+1))"的形式输出表达式的值,但可以用echo $((i=i+1))输出其值 |
| i=$((i+1)) | 可以在“(())”前加$符,表示将表达式运算后赋值给i |
| ((8>7&&5==5)) | 可以进行比较操作,还可以加入逻辑与和逻辑或,用于条件判断 |
| echo $((2+1)) | 需要直接输出运算表达式的运算结果时,可以在“(())”前加$符 |
特殊符号运算
a++ #先赋值后加一
++a #先加一后赋值
a-- #先赋值后减一
--a #先减一后赋值
数值计算脚本开发
开发一个,接受用户输入的数字,且对运算符号判断,最终得出结果的一个计算脚本
1、接受用户输入
2、对用户输入的是不是数字进行判断
3、对输入的运算符号进行判断
3、最终进行结果计算,输出打印
#!/bin/bash
#脚本开发
#如果用户输入的是非数字,就执行以下函数,提示用户应该输入什么
print_usage(){
printf "please enter an integer\n"
#给脚本的执行结果,赋予一个状态码,退出码
exit 1
}
#接受用户输入的命令,-p参数后面写给用户看到的提示信息
#read -p “提示信息” 接受用户输入的变量
read -p "Please input your number: " firstnum
#进行对用户输入判断 if 语句
#注意语法格式!!
#限制用户必须输入纯数字
#中括号里面前后必须有一个空格,是固定的语法
#-n 参数是if的语句,对字符串判断,如果字符串为空,条件就不成立,如果字符串不为空,条件成立
#假如用户输入“qwe123”
#sed的作用就是把上述字符串 “qwe123”进行替换,我把所有的数字都替换为空,那么就剩下其它非数字的内容了
#如果用户输入的纯数字, 123456
if [ -n "`echo $firstnum | sed 's/[0-9]//g'`" ]
then
print_usage
fi
#此时对运算符进行输入
read -p "Please input your operator:" operator
#对运算符进行判断
#限制zai + - * /
if [ "${operator}" != "+" ] && [ "${operator}" != "=" ] && [ "${operator}" != "*" ] && [ "${operator}" != "/" ]
then
echo "只允许输入 +、-、*、/"
exit 2
fi
#此时输入第二个数字
read -p "Please input your second number:" secondnum
if [ -n "`echo $secondnum | sed 's/[0-9]//g'`" ]
then
print_usage
fi
#最后进行数值计算,利用双小括号计算
echo "${firstnum}${operator}${secondnum}结果是:$((${firstnum}${operator}${secondnum}))"
测试:



来个简单的:
#!/bin/bash
echo $(($1))

本文介绍了Shell脚本中基本的数学运算和用户输入判断方法。包括使用((...))和$((...))进行整数运算,条件判断如逻辑与、逻辑或以及比较操作。同时,提供了一个脚本示例,该脚本接收用户输入的数字和运算符,检查输入是否为有效数字并执行计算。脚本还包含了对输入运算符的合法性检查,确保只使用了+、-、*、/四种运算符。
734

被折叠的 条评论
为什么被折叠?



