Shell脚本入门02

2019-08-01 分类:Shell 阅读(66) 评论(0)
1.数值的运算
expr   整数运算 可运算加减乘除 不支持小数 也可以所见即所得
例如:
[root@web02 ~]# expr lisong
lisong
运算两边加空格
乘法需转义 例如:
[root@web02 ~]# expr 1 + 1
2
[root@web02 ~]# expr 2 / 2
1
[root@web02 ~]# expr 2 * 2
expr: syntax error
[root@web02 ~]# expr 2 \* 2
4
[root@web02 ~]# expr 2 - 1
1
[root@web02 ~]# expr 1 + 1.5
expr: non-integer argument
案例:判断传参输入是否为整数
[root@web02 ~]# num1=10
[root@web02 ~]# num2=10l
[root@web02 ~]# expr $num1 + 1 > /dev/null 2>&1
[root@web02 ~]# [ $? -ne 0 ] && echo "这是非整数" || echo "这是整数"
这是整数
[root@web02 ~]# expr $num2 + 1 > /dev/null 2>&1
[root@web02 ~]# [ $? -ne 0 ] && echo "这是非整数" || echo "这是整数"
这是非整数

$(())  整数运算 运算效率最高 可运算加减乘除 不支持小数
例如:
[root@web02 ~]# echo $((10+10))
20
[root@web02 ~]# echo $((10+10.5))
-bash: 10+10.5: syntax error: invalid arithmetic operator (error token is ".5")
[root@web02 ~]# echo $((110/10))
11
[root@web02 ~]# echo $((10*10))
100
[root@web02 ~]# echo $((100-50))
50

$[]  整数运算 可运算加减乘除 不支持小数
例如:
[root@web02 ~]# echo $[10+10]
20
[root@web02 ~]# echo $[10+10.5]
-bash: 10+10.5: syntax error: invalid arithmetic operator (error token is ".5")
[root@web02 ~]# echo $[10-5]
5
[root@web02 ~]# echo $[10/5]
2
[root@web02 ~]# echo $[10*5]
50

let  整数运算  可运算加减乘除  不支持小数 重点
语法:
[root@web02 ~]# let sum=10+10
[root@web02 ~]# echo $sum
20
例如:
[root@web02 ~]# let sum=10+10.5
-bash: let: sum=10+10.5: syntax error: invalid arithmetic operator (error token is ".5")
[root@web02 ~]# num1=100
[root@web02 ~]# num2=40
[root@web02 ~]# let sum=$num1+$num2
[root@web02 ~]# echo $sum
140
[root@web02 ~]# let sum=$num1-$num2
[root@web02 ~]# echo $sum
60
[root@web02 ~]# let sum=$num1/$num2
[root@web02 ~]# echo $sum
2
[root@web02 ~]# let sum=$num1*$num2
[root@web02 ~]# echo $sum
4000

i++  变量自增  字母可以随便
例如:
[root@web02 ~]# let i=i+1
[root@web02 ~]# echo $i
1
[root@web02 ~]# let i++
[root@web02 ~]# echo $i
2
[root@web02 ~]# let i++
[root@web02 ~]# let i++
[root@web02 ~]# let i++
[root@web02 ~]# let i++
[root@web02 ~]# echo $i
6

bc 运算  需要安装   yum install -y bc
例如:
[root@web02 ~]# echo 10+10|bc
20
[root@web02 ~]# echo 10-10|bc
0
[root@web02 ~]# echo 10*10|bc
100
[root@web02 ~]# echo 10/10|bc
1
[root@web02 ~]# echo 10+10.5|bc
20.5

awk 运算
例如:
[root@web02 ~]# awk 'BEGIN{print 10+10}'
20
[root@web02 ~]# awk 'BEGIN{print 10-10}'
0
[root@web02 ~]# awk 'BEGIN{print 10*10}'
100
[root@web02 ~]# awk 'BEGIN{print 10/10}'
1
[root@web02 ~]# awk 'BEGIN{print 10+10/5}'
12
[root@web02 ~]# awk 'BEGIN{print 10+10+5}'
25
[root@web02 ~]# awk 'BEGIN{print 10+10.5}'
20.5
[root@web02 ~]# echo 100 300 | awk '{print $1+$2}'
400

python 运算
例如:
[root@web02 ~]# python
Python 2.7.5 (default, Oct 30 2018, 23:45:53)
[GCC 4.8.5 20150623 (Red Hat 4.8.5-36)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> 1+1
2
>>> 10-5
5
>>> 10*5
50
>>> 10/5
2
>>> 10+10.5
20.5
CTRL+D 退出

案例:
简单制作一个加减乘除计算器
例如:
请输入第一个运算数字 10
请输入第二个运算数字 10
10+10=20
脚本如下:
#!/bin/sh
read -p "请输入第一个要运算的数字:" num1
read -p "请输入第二个要运算的数字:" num2
echo "$num1+$num2=$[$num1+$num2]"
echo "$num1-$num2=$[$num1-$num2]"
echo "$num1*$num2=$[$num1*$num2]"
echo "$num1/$num2=$[$num1/$num2]"
运行结果如下:
[root@web02 ~]# sh count.sh
请输入第一个要运算的数字:1
请输入第二个要运算的数字:1
1+1=2
1-1=0
1*1=1
1/1=1

您可能也喜欢:

Shell脚本入门03

1.条形表达式 []=========test     []常用 [ -f file ]  文件是否存在 且为普通文件  重点 [ -e file ] 文件存在则为真 [ -d file ] 目录存在则为真 [ -x file ] 文件有执行权限则为真 [ -w file ] 文件可写则...

more

Shell脚本入门01

1.Shell脚本三种执行方式 1.bash执行 bash test.sh 2.全路径执行 /server/scripts/test.sh 3. . 或者source执行 . test.sh source test.sh 他们的区别在与第一种和第二种都是在Shel中执行 第三种是在父进程下...

more

Shell脚本简介

1.学习Shell脚本需要用到什么知识?远程连接工具  如:Xshell  CRTLinux常用命令  需熟练掌握三剑客命令  需熟练掌握vim编辑器  需熟练掌握 2.如何学好Shell编程环境变量  条形表达式  if...

more

评论&留言
欢迎新朋友你的到来!
还没有人抢沙发呢~
昵称
邮箱
网站

登录

忘记密码 ?

您也可以使用第三方帐号快捷登录

切换登录

注册