Shell 使用 expr 进行数学运算
1、语法格式:
第一种:expr $num1 operator $num2
第二种:$(($num1 operator $num2))
2、expr 操作符:
注意:这里比较为true,返回 1。只支持整数。
3、实际使用,比较时必须有空格
在实际使用过程中,类似于“|” 这样的管道符号要进行转义,如下:
num1=100
num2=200
expr $num1 \| $num2
expr $num1 \& $num2
expr $num1 \< $num2
expr $num1 \<= $num2
expr $num1 \> $num2
expr $num1 \>= $num2
expr $num1 = $num2
expr $num1 != $num2
expr $num1 + $num2
expr $num1 - $num2
expr $num1 \* $num2
expr $num1 / $num2
expr $num1 % $num2
4、举例
$ num1=30
$ num2=50
$ expr $num1 \| $num2
打印出:30
$ expr $num1 + $num2
打印出:80
$ num3=`expr $num1 \* $num2` // 命令替换的形式
$ echo $num3
打印出:1500
对于 $(()) 这种操作,需要赋给一个值,并且里面的符号不用转义。 expr 会直接当成一个命令进行操作
$ num3=$(($num1*$num2))
$ echo $num3
打印出:1500
注意:$(()) 进行运算只能进行 加、减、乘、除、求余 运算。
5、大练习
提示用户输入一个正整数,然后计算 1+2+3+...+num 的值,并打印。 必须对num进行正整数判断,不符合要求,则给出提示,然后重新输入。
#!/bin/bash #计算 +++...+num 的和,并且num 必须是正整数 while true
do
read -p "请输入一个正整数:" num # 判断是不是整数,如果不是整数,num + 运算会报错,$? 返回值就为2
expr $num + &> /dev/null if [ $? -eq ]; then
if [ `expr $num \> ` -eq ]; then
for((i=; i<=$num; i++))
do
sum=`expr $sum + $i`
done
echo "1+2+...+$num = $sum"
exit
fi
echo "输入的参数不是正整数"
else
echo "输入的参数不是一个整数"
fi
continue
done
Shell 使用 expr 进行数学运算的更多相关文章
- shell脚本中的数学运算
shell中的赋值和操作默认都是字符串处理,在此记下shell中进行数学运算的几个特殊方法.以后用到的时候能够来看,呵呵 1.错误方法举例 a) var=1+1 echo $var 输出的结果是1+1 ...
- 认真学习shell的第一天-数学运算
shell中的数学运算有三种方式: (1)let,用let的时候,变量名称前不用添加$ (2)[],[]中变量可使用也可不使用$ (3)(())变量名之前必须添加$
- shell编程:expr的数学运算
运算符两种方式 方式一:expr $num1 operator $num2 方式二:$(($num1 operator $num2)) (方式二在运算符“=”时候会出错) 1+2.sh 这个代码有点问 ...
- linux学习(八)Shell中变量的数学运算
目录 常见的运算符 expr命令 @(Shell中变量的数学运算) 常见的运算符 环境变量 说明 + 加 - 减 * 乘 / 除 % 取模 因为Shell中将*作为通配符使用, expr命令 expr ...
- Shell bc命令进行数学运算
通常情况做简单的运算,很多命令里面都是支持的.比如for, awk等. #!/bin/bash num= #for循环这里的数字也是运算 #也可以使用 #也可以使用数组 ;i<=;++i)) d ...
- shell中的数学运算
shell中要进行数学运算通常有3中方法: expr命令 比如 expr 1 + 6就会返回7,使用expr的缺点就是碰到乘法运算,或者加括号(因为它们在shell中有其他意义),需要使用转义,比如: ...
- shell 数学运算
数学运算之 expr expr操作符对照表 比较大小,只能对整数进行比较,需要加空格,linux 保留关键字要转义 num1=30 num2=50 expr $num1 \> $num2 查看上 ...
- Linux shell 变量 数学 运算
Abstract : 1) Linux shell 中使用 let , [ ] ,(( )) 三种运算符操作 shell 变量进行简单的基本运算: 2)Linux shell 中使用 expr 与 ...
- shell编程之数学运算
shell数学运算支持整数运算的四种方法 1.let命令 no1=4; no2=5; let result=no1+no2 2.[]操作符 result=$[ no1 + no2] 3.(())操作符 ...
随机推荐
- vim 复制粘贴
首先进入块模式 Ctrl+ v 使用按键j/k/h/l进行选中多列 使用按键y进行复制 在insert模式下:使用按键p进行粘贴
- HBase表数据的转移之使用自定义MapReduce
目标:将fruit表中的一部分数据,通过MR迁入到fruit_mr表中 Step1.构建ReadFruitMapper类,用于读取fruit表中的数据 package com.z.hbase_mr; ...
- hbase之认识
进入HBase客户端命令操作界面 $ bin/hbase shell 查看帮助命令 hbase(main):001:0> help 查看当前数据库中有哪些表 h ...
- php单点登录
http://blog.csdn.net/luyaran/article/details/54890036
- 在.net core web项目中生成二维码
1.添加QRCoder包引用 2. public IActionResult MakeQrCode() { string url="https://www.baidu.com& ...
- 在Linux和Windows之间的远程控制的实现
主要开发工作用Linux,邮件和文档等主要在Windows,两者之间经常需要传输数据,两台主机都必须同时运行着. 但是,通常来说,它们需要同时准备两套显示器.鼠标和键盘,既占地方又不够方便. 远程控制 ...
- JAVA语言之怎样写出高性能的Java代码?
本文主要向大家介绍了JAVA语言之怎样写出高性能的 Java 代码?通过具体的内容向大家展示,希望对大家学习JAVA语言有所帮助. 在这篇文章中,我们将讨论几个有助于提升Java应用程序性能的方法.我 ...
- 关于sql注入漏洞的挖掘及渗透工具简介
大量的现代企业采用Web应用程序与其客户无缝地连接到一起,但由于不正确的编码,造成了许多安全问题.Web应用程序中的漏洞可使黑客获取对敏感信息(如个人数据.登录信息等)的直接访问. Web应用程序准许 ...
- javascript中的add(1)(2)(3)(4)是怎么实现的
javascript中的add(1)(2)(3)(4)是怎么实现的?实现如下: var fn = function(a){ let sum = a; let tempFn = function(b){ ...
- idea的破解及相关安装
---- idea的破解 -javaagent:../bin/JetbrainsCrack-2.7-release-str.jar 复制到相关的idea配置文件 并将该Jar包复制到idea的bin目 ...