龙空技术网

推荐掌握Linux shell中这7种运算命令,值得收藏

IT小知识 579

前言:

今天我们对“linux shell 加减乘除”大约比较看重,看官们都想要分析一些“linux shell 加减乘除”的相关文章。那么小编同时在网络上网罗了一些对于“linux shell 加减乘除””的相关知识,希望咱们能喜欢,各位老铁们一起来了解一下吧!

#shell编程##linux#

#常见的算术运算符号

1.+、-:加减2.*、/、%:乘、除、取余3.**:幂运算4.++、--:增加记减少5.!、&&、||:取反,并且,或6.<,<=,>,=> :比较符号:小于,小于等于,大于,大于等于7.==、!=、=:比较符号:相等,不相等8.<<,>> :向左移,向右移9.+=、-=:赋值运算,+=相当于i=i+1,-+相当于i=i-1

#常见的的算数运算命令

1.(()):用于整数运算的常用运算符2.let:用于整数运算3.expr:也可用于整数运算,还有其他额外功能4.bc:计算机程序,适用整数记小数运算5.$[]:用于整数运算6.awk:可以用于整数运算,也可用于小数运算7.declare:定义变量值和属性

1.(())双小括号

(())双小括号作用是进行数值运算和数字比较

#常见的操作

((a=i+1))i=$((i+1))echo $((1+4))

#应用

#使用(())进行数值计算[root@game ~]# echo $((10+5)) #进行相加15[root@game ~]# echo $((10-5)) #进行相减5[root@game ~]# echo $((10*5)) #相乘50[root@game ~]# echo $((10/5)) #相除2[root@game ~]# echo $((10**5)) #次幂100000[root@game ~]# echo $((10%5)) #取余0[root@game ~]# ((i=10))[root@game ~]# ((i=i*5))[root@game ~]# echo $i #适用echo输出50[root@game ~]# ((n=10+2-5*2/4+5))[root@game ~]# echo $n15[root@game ~]# echo $((100*(100+1)/2)) #计算1+2+3..+100的和5050

#使用(())进行比较判断

[root@game ~]# echo $((4<9)) #如果结果为真就输出11[root@game ~]# echo $((4>9)) #如果结果为假就输出00[root@game ~]# echo $((4==4))1[root@game ~]# if ((8>7&&6==6));then echo yes;fi #使用if语句进行判断条件是否成立yes

#(())运算后赋值给变量

[root@game ~]# mytest=66[root@game ~]# echo $((mytest+34))100[root@game ~]# mytest=$((mytest+34))[root@game ~]# echo $mytest100

#将命令写进脚本执行

[root@game test]# cat test1.sh #!/bin/basha=6b=3echo "a-b=$(($a-$b))"echo "a+b=$(($a+$b))"echo "a*b=$(($a*$b))"echo "a/b=$(($a/$b))"echo "a%b=$(($a%$b))"#效果[root@game test]# sh test1.sh a-b=3a+b=9a*b=18a/b=2a%b=0

#将脚本中定义的变量通过传参的方式来实现

[root@game test]# cat test1.sh #!/bin/basha=$1b=$2echo "a-b=$(($a-$b))"echo "a+b=$(($a+$b))"echo "a*b=$(($a*$b))"echo "a/b=$(($a/$b))"echo "a%b=$(($a%$b))"#效果[root@game test]# sh test1.sh 8 4a-b=4a+b=12a*b=32a/b=2a%b=0

2.let命令

#语法格式:let 赋值表达式

#示例

[root@game ~]# let n=10+3[root@game ~]# echo $n13[root@game ~]# let a=20/4[root@game ~]# echo $a5

#实践

#判断如果登录失败次数等于3次,那么就打印登录失败,退出脚本[root@game test]# cat login.sh #!/bin/bashfail=0while ((1==1))do    read -p "please enter you username: " user    read -p "please enter you password: " password    if [[ $user = 'guoke' && $password = 'guoke123' ]];then        echo "login success"        exit 1    else        if [ $? -ne 0 ];then            let fail=fail+1 #如果登录失败次数就会加1            if [ $fail -ge 3 ];then #当失败次数等于3就打印登录失败                echo "login fail"                exit 1            fi        fi    fidone#效果[root@game test]# sh login.sh please enter you username: 1please enter you password: 1please enter you username: 2please enter you password: 2please enter you username: 3please enter you password: 3login fail[root@game test]# sh login.sh please enter you username: guoke   please enter you password: guoke123login success

3.expr命令

#介绍

expr - evaluate expressions

expr - (evaluate(求值) expressions(表达式),可以用于整数运算,也可用于相关字符串、匹配的运算处理

#查看更多帮助

man expr

#示例1:用于基本的计算

[root@game ~]# n=10[root@game ~]# n=`expr $n + 100`[root@game ~]# echo $n110

#示例2:配合变量进行计算,需要使用反引号将计算表达式括起来

[root@game ~]# n=10[root@game ~]# n=`expr $n + 100`[root@game ~]# echo $n110

#案例

#1.判断一个变量值或字符串是否为整数

#将一个变量或字符串和一个非0的整数相加,查看返回值是否为0,如果为0,说明为整数,否则就不是整数[root@game ~]# a=10[root@game ~]# expr $a + 10 &>/dev/null[root@game ~]# echo $?0 #返回0,证明a的值为整数[root@game ~]# n=guoke[root@game ~]# expr $n + 10 &>/dev/null[root@game ~]# echo $?2 #返回非0,整数n的值不是整数

4.bc命令

#介绍

#直接在命令输入bc,然后进行相关的加减乘除操作[root@game ~]# bcbc 1.06.95Copyright 1991-1994, 1997, 1998, 2000, 2004, 2006 Free Software Foundation, Inc.This is free software with ABSOLUTELY NO WARRANTY.For details type `warranty'. 10+2002102*24333-22311^C(interrupt) Exiting bc.

#示例1:作为计算器来使用

[root@game ~]# echo 333+333|bc666[root@game ~]# echo 3.33+3.33|bc6.66[root@game ~]# echo 33*33|bc1089[root@game ~]# echo "scale=3;333/45"|bc7.400[root@game ~]# echo "scale=2;333/45"|bc7.40提示:根据bc所具有的特殊性来看,如果是小数,则选择bc运算没有问题, 若是整数场景,可用”(())“、let、expr等

#示例2:在命令行下面实现运算功能

[root@game ~]# echo 333+333|bc666[root@game ~]# echo 3.33+3.33|bc6.66[root@game ~]# echo 33*33|bc1089[root@game ~]# echo "scale=3;333/45"|bc7.400[root@game ~]# echo "scale=2;333/45"|bc7.40提示:根据bc所具有的特殊性来看,如果是小数,则选择bc运算没有问题, 若是整数场景,可用”(())“、let、expr等

5.$[]命令

#使用$[]来计算运算

#应用

[root@game ~]# declare -i a=10 b=10[root@game ~]# a=a+b[root@game ~]# echo $a20

6.declare命令

#使用declare来运算,同typeset

#示例1:定义整数变量,进行计算

[root@game ~]# DIR_TEST=/tmp/test[root@game ~]# declare |grep TESTDIR_TEST=/tmp/test

#示例2:也可以作为变量输出

[root@game ~]# DIR_TEST=/tmp/test[root@game ~]# declare |grep TESTDIR_TEST=/tmp/test

7.awk命令

awk是一种编程语言,可以用来处理数据和生成报告,也可以实现计算,适合小数和整数运算

#应用

#进行相加[root@game ~]# echo "3.3 2.3" | awk '{print ($1+$2)}'5.6 #进行相减[root@game ~]# echo "3.3 2.3" | awk '{print ($1-$2)}'1#相乘[root@game ~]# echo "3.3 2.3" | awk '{print ($1*$2)}'7.59#先使用743-100再相除[root@game ~]# echo "743 234" | awk '{print ($1-100)/$2}'2.74786#先使用743-100再相乘[root@game ~]# echo "743 234" | awk '{print ($1-100)*$2}'150462

#获取更多学习资料,点击更多,关注微信公众号老油条IT记一起学习

标签: #linux shell 加减乘除