Linux shell 算术运算符
Linux shell 算术运算符
bash 中执行整数算术运算的命令是let。
其语法格式为:
语法格式:
其中,参数是单独的算术表达式。
这里的算术表达式使用C 语言中表达式的语法、优先级和结合性。
除++、--和逗号之外,所有的整型运算符都得到支持。
此外,
算符及其优先级和结合性。
表中运算符优先级是由高到低排列的,即1级最高,15级最低。
同级运算符在同一个表达式中出现时,其执行顺序由结合性表示。
在bash表达式中可以使用括号,用来改变运算符的操作顺序,即在运算时要先计算括号内的表达式。
当表达式中有shell的特殊字符时,必须用双引号将其括起来。
例如,let "val=a|b"。
如果不括起来,shell会把命令行let val=a|b中的“|”看成管道符,将其左右两边看成不同的命令。
linuxshell指令诸如-d,-f,-e之类的判断表达式简介
linuxshell指令诸如-d,-f,-e之类的判断表达式简介⼀、⽂件⽐较运算符1. e filename 如果 filename存在,则为真如: [ -e /var/log/syslog ]2. -d filename 如果 filename为⽬录,则为真如: [ -d /tmp/mydir ]3. -f filename 如果 filename为常规⽂件,则为真如: [ -f /usr/bin/grep ]4. -L filename 如果 filename为符号链接,则为真如: [ -L /usr/bin/grep ]5. -r filename 如果 filename可读,则为真如: [ -r /var/log/syslog ]6. -w filename 如果 filename可写,则为真如: [ -w /var/mytmp.txt ]7. -x filename 如果 filename可执⾏,则为真如: [ -L /usr/bin/grep ]8. filename1-nt filename2 如果 filename1⽐ filename2新,则为真如: [/tmp/install/etc/services -nt /etc/services ]9. filename1-ot filename2 如果 filename1⽐ filename2旧,则为真如: [/boot/bzImage -ot arch/i386/boot/bzImage ]⼆、字符串⽐较运算符(请注意引号的使⽤,这是防⽌空格扰乱代码的好⽅法)1. -z string 如果 string长度为零,则为真如: [ -z "$myvar" ]2. -n string 如果 string长度⾮零,则为真如: [ -n "$myvar" ]3. string1= string2 如果 string1与 string2相同,则为真如: ["$myvar" = "one two three"]4. string1!= string2 如果 string1与 string2不同,则为真如: ["$myvar" != "one two three"]三、算术⽐较运算符1. num1-eq num2 等于如: [ 3 -eq $mynum ]2. num1-ne num2 不等于如: [ 3 -ne $mynum ]3. num1-lt num2 ⼩于如: [ 3 -lt $mynum ]4. num1-le num2 ⼩于或等于如:[ 3 -le $mynum ]5. num1-gt num2 ⼤于如:[ 3 -gt $mynum ]6. num1-ge num2 ⼤于或等于如: [ 3 -ge $mynum ]四、查看磁盘、⽂件⼤⼩1. df -h 查看磁盘占⽤情况2、du -sm ./* 查看当前⽬录下⽂件⼤⼩,单位M。
shell变量运算方式
shell变量运算方式
Shell变量可以进行运算的方式有以下几种:1. 使用expr命令进行数学运算。
expr命令可以进行加减乘除、取余等基本的数学运算。
例如,可以使用
`result=(expr a + b)`来将变量a和b的值相加并将结果保存在变量result中。
2. 使用(( ))进行算术运算。
在(( ))中可以使用基本的算术运算符进行数学运算,如+、-、*、/等。
例如,可以使用`result=((a + b))`将变量a和b的值相加并将结果保存在变量result中。
3. 使用let命令进行算术运算。
let命令是Bash Shell 提供的一个内置命令,可以直接进行算术运算。
例如,可以使用`let result=a+b`将变量a和b的值相加并将结果保存在变量result中。
4. 使用declare命令进行算术运算。
declare命令可以用来声明变量的类型,同时也可以进行算术运算。
例如,可以使用`declare -i result`来声明result为整型变量,然后使用
`result=a+b`将变量a和b的值相加并将结果保存在变量result中。
5. 使用bc 命令进行高精度计算。
bc命令是一个任意精度计算工具,可以进行高精度的数学运算。
可以使用echo命令将运算表达式传递给bc命令,并使用( )将bc命令的输出保存到变量中。
例如,可以使用`result=(echo "scale=2; a + b" bc)`将变量a和b的值相加并将结果保存在变量result中,保留小数点后两位。
shell 基本计算逻辑运算位运算详解
-u侦测是否具有『 SUID 』的属性-g侦测是否具有『 SGID 』的属性-k侦测是否具有『 sticky bit 』的属性4.两个档案之间的判断与比较 ;例如[ test file1 -nt file2 ]-nt第一个档案比第二个档案新-ot第一个档案比第二个档案旧-ef第一个档案与第二个档案为同一个档案( link 之类的档案)5.逻辑的『和(and)』『或(or)』&&逻辑的 AND 的意思||逻辑的 OR 的意思运算符号代表意义=等于 应用于:整型或字符串比较 如果在[] 中,只能是字符串!=不等于 应用于:整型或字符串比较 如果在[] 中,只能是字符串<小于 应用于:整型比较 在[] 中,不能使用 表示字符串>大于 应用于:整型比较 在[] 中,不能使用 表示字符串-eq等于 应用于:整型比较-ne不等于 应用于:整型比较-lt小于 应用于:整型比较-gt大于 应用于:整型比较-le小于或等于 应用于:整型比较-ge大于或等于 应用于:整型比较-a双方都成立(and) 逻辑表达式 –a 逻辑表达式-o单方成立(or) 逻辑表达式 –o 逻辑表达式-z空字符串-n非空字符串二、逻辑表达式test 命令使用方法:test EXPRESSION如:[root@localhost ~]# test 1 = 1 && echo ‘ok'ok[root@localhost ~]# test -d /etc/ && echo ‘ok'ok[root@localhost ~]# test 1 -eq 1 && echo ‘ok'ok[root@localhost ~]# if test 1 = 1 ; then echo ‘ok'; fiok注意:所有字符 与逻辑运算符直接用“空格”分开,不能连到一起。
linux shell 关系运算符
linux shell 关系运算符Linux shell 是一种强大的命令行工具,可以通过关系运算符进行条件判断和比较操作。
本文将介绍常用的关系运算符及其用法,帮助读者更好地理解和使用Linux shell。
1. 等于运算符(-eq)等于运算符用于比较两个值是否相等。
例如:```shellif [ $a -eq $b ]thenecho "a等于b"fi```上述代码中,如果变量a的值等于变量b的值,则输出"a等于b"。
2. 不等于运算符(-ne)不等于运算符用于比较两个值是否不相等。
例如:```shellif [ $a -ne $b ]thenecho "a不等于b"fi```上述代码中,如果变量a的值不等于变量b的值,则输出"a不等于b"。
3. 大于运算符(-gt)大于运算符用于比较两个数值,判断前者是否大于后者。
例如:```shellif [ $a -gt $b ]thenecho "a大于b"fi```上述代码中,如果变量a的值大于变量b的值,则输出"a大于b"。
4. 小于运算符(-lt)小于运算符用于比较两个数值,判断前者是否小于后者。
例如:```shellif [ $a -lt $b ]thenecho "a小于b"fi```上述代码中,如果变量a的值小于变量b的值,则输出"a小于b"。
5. 大于等于运算符(-ge)大于等于运算符用于比较两个数值,判断前者是否大于等于后者。
例如:```shellif [ $a -ge $b ]thenecho "a大于等于b"fi```上述代码中,如果变量a的值大于等于变量b的值,则输出"a大于等于b"。
6. 小于等于运算符(-le)小于等于运算符用于比较两个数值,判断前者是否小于等于后者。
Shell初学(六)LinuxShell时间运算以及时间差计算方法
Shell初学(六)LinuxShell时间运算以及时间差计算⽅法Linux Shell 时间运算以及时间差计算⽅法时间的加减,以及时间差的计算。
1。
时间加减这⾥处理⽅法,是将基础的时间转变为时间戳,然后,需要增加或者改变时间,变成秒。
如:1990-01-01 01:01:01 加上 1⼩时 20分处理⽅法:a.将基础时间转为时间戳time1=$(date +%s -d '1990-01-01 01:01:01')echo $time1631126861【时间戳】b.将增加时间变成秒[root localhost ~]# time2=$((1*60*60+20*60))[root localhost ~]# echo $time24800c.两个时间相加,计算出结果时间time1=$(($time1+$time2))time1=$(date +"%Y-%m-%d %H:%M:%S" -d "1970-01-01 UTC $time1 seconds");echo $time11990-01-0102:21:01#如果是分钟,则可以把 seconds换成minutes,天则可以换成 days ,星期换成weeks,⽉换成months,年换成years#这个UTC关键词也可以不写2。
时间差计算⽅法如:2010-01-01 与 2009-01-01 11:11:11 时间差原理:同样转成时间戳,然后计算天,时,分,秒time1=$(($(date +%s -d '2010-01-01') - $(date +%s -d '2009-01-01 11:11:11')));echo time1将time1 / 60秒,就变成分了。
补充说明:shell 单括号运算符号:a=$(date);等同于:a=date;双括号运算符:a=$((1+2));echo $a;等同于:a=expr1 + 2附录:Linux date命令可以⽤来显⽰或设定系统的⽇期与时间,在显⽰⽅⾯,使⽤者可以设定欲显⽰的格式,格式设定为⼀个加号后接数个标记,其中可⽤的标记列表如下:时间⽅⾯:% : 印出 %%n : 下⼀⾏%t : 跳格%H : ⼩时(00..23)%I : ⼩时(01..12)%k : ⼩时(0..23)%l : ⼩时(1..12)%M : 分钟(00..59)%p : 显⽰本地 AM 或 PM%r : 直接显⽰时间 (12 ⼩时制,格式为 hh:mm:ss [AP]M)%s : 从 1970 年 1 ⽉ 1 ⽇ 00:00:00 UTC 到⽬前为⽌的秒数%S : 秒(00..61)%T : 直接显⽰时间 (24 ⼩时制)%X : 相当于 %H:%M:%S%Z : 显⽰时区⽇期⽅⾯:%a : 星期⼏ (Sun..Sat)%A : 星期⼏ (Sunday..Saturday)%b : ⽉份 (Jan..Dec)%B : ⽉份 (January..December)%c : 直接显⽰⽇期与时间%d : ⽇ (01..31)%D : 直接显⽰⽇期 (mm/dd/yy)%h : 同 %b%j : ⼀年中的第⼏天 (001..366)%m : ⽉份 (01..12)%U : ⼀年中的第⼏周 (00..53) (以 Sunday 为⼀周的第⼀天的情形)%w : ⼀周中的第⼏天 (0..6)%W : ⼀年中的第⼏周 (00..53) (以 Monday 为⼀周的第⼀天的情形)%x : 直接显⽰⽇期 (mm/dd/yy)%y : 年份的最后两位数字 (00.99)%Y : 完整年份 (0000..9999)若是不以加号作为开头,则表⽰要设定时间,⽽时间格式为 MMDDhhmm[[CC]YY][.ss],其中 MM 为⽉份,DD 为⽇,hh 为⼩时,mm 为分钟,CC 为年份前两位数字,YY 为年份后两位数字,ss 为秒数。
linux系统之Shell运算符linux5
Shell编程运算符shell变量的缺点:弱类型、默认是字符串的、一:declare命令声明变量类型#declare [+/-] [选项] 变量名选项:”-”号:给变量设定类型属性“+”号:取消变量的类型属性-a :将变量声明为数组型-i :将变量声明为整数型-x :将变量声名为环境变量-r :将变量声明为只读变量-p :显示指定变量的被声明的类型1、把变量声明成数值型#aa=11#bb=22#declare -i cc=$aa+$bb#echo $cc#33#declare -pdeclare -i cc=”33”注意:声明变量cc的类型是整数型,它的值是aa和bb的和2、定义数组[root@localhost~]#movie[0]=zp[root@localhost~]#movie[1]=tp[root@localhost~]#declare -a movie[2]=live查看数组[root@localhost~]#echo${movie} //调用第一个文件[root@localhost~]#echo${movie[2]} //指定调用[root@localhost~]#echo${movie[*]} //调用all注意:有下标的[n] 系统默认是数组类型#movie[0]=c1#movie[1]=tpc#movie[2]=declare -a movie[2]=tpb#echo ${movie[*]}cl tpc tpb#echo ${movie[1]}tpc#echo ${movie}c13、声明环境变量declare -x text=123#和export作用相似,但其实是declare命令的作用4、声明变量为只读属性[root@localhost~]#declare -r test#给test赋予只读属性,但是请注意只读属性会让变量不能修改、不能删除、甚至不能取消只读属性,重启后自动消失,如果将他加在了开机启动文件中,要注意其用法。
shell 算术表达式 -回复
shell 算术表达式 -回复 什么是Shell算术表达式?
Shell算术表达式是一种在Shell脚本中使用的数学表达式。它们允许我们用变量、常数和运算符来进行数学计算,并在脚本中使用计算结果。Shell算术表达式使用一种通用的语法来表示数学运算,可以进行四则运算以及其他高级的数学计算。在Shell脚本中,我们可以使用不同的工具和技术,如expr命令、((...))、let命令以及使用外部工具如bc命令等来进行数学计算。
如何使用Shell算术表达式? 在Shell脚本中,我们可以通过使用不同的语法结构和工具来执行算术运算。下面是几种常见的Shell算术表达式的使用方法:
1. 使用expr命令:expr命令用于求解表达式的值并将结果输出到终端上。它的使用方法如下:
shell result=(expr 2 + 2) echo result 这个例子中,expr命令计算了表达式2 + 2的值,并将结果赋给了变量result。最后,我们使用echo命令输出了变量result的值。
2. 使用((...)):这是一种更简单的方式来进行数学计算。它的使用方法如下: shell result=((2 + 2)) echo result
这个例子中,我们直接使用((...))语法来计算表达式2 + 2的值,并将结果赋给了变量result。最后,我们使用echo命令输出了变量result的值。
3. 使用let命令:let命令是另一种执行算术运算的常见方式。它的使用方法如下:
shell let result=2+2 echo result 这个例子中,我们使用let命令计算了表达式2 + 2的值,并将结果赋给了变量result。最后,我们使用echo命令输出了变量result的值。
4. 使用bc命令:bc是一个用于计算的外部工具,我们可以使用它来进行更复杂的数学计算。它的使用方法如下:
shell result=(echo "2 + 2" bc) echo result
linux算术运算表达式
linux算术运算表达式Linux中的算术运算表达式是一种用于执行数学运算的工具。
它允许用户在命令行界面中进行各种算术运算,包括加法、减法、乘法、除法等。
在本文中,我将一步一步地回答关于Linux算术运算表达式的问题,并提供一些示例来帮助读者更好地理解。
第一步:什么是算术运算表达式?算术运算表达式是由运算符和操作数组成的数学表达式。
在Linux中,算术运算表达式可以用于执行基本的数学运算,例如加法、减法、乘法和除法。
第二步:如何执行算术运算表达式?在Linux中,可以使用两种主要的方法执行算术运算表达式。
第一种是使用命令行工具,如bash、bc或expr。
第二种方法是使用脚本语言,如Shell脚本。
第三步:如何使用命令行工具执行算术运算表达式?在命令行中,可以使用一些内置的命令行工具来执行算术运算表达式。
下面是几个常用的命令行工具示例:1. Bash:Bash是Linux中最常用的命令行工具之一。
可以使用(( ))语法来执行算术运算表达式。
例如,要计算2加上3的结果,可以键入以下命令:echo ((2 + 3))输出将是5。
2. Bc:Bc是一个用于执行任意精度数学运算的命令行工具。
它支持基本的算术运算,如加法、减法、乘法和除法,以及复杂的数学函数。
要计算2除以3的结果,可以键入以下命令:echo "2 / 3" bc输出将是0.66666666666666666666。
3. Expr:Expr是另一个用于执行算术运算表达式的命令行工具。
它支持基本的算术运算,并返回计算结果作为输出。
要计算2乘以3的结果,可以键入以下命令:expr 2 \* 3输出将是6。
第四步:如何使用脚本语言执行算术运算表达式?在Shell脚本中,可以使用变量和运算符来执行算术运算表达式。
以下是一个示例Shell脚本,计算两个变量的加法:#!/bin/basha=2b=3c=((a + b))echo "The sum of a and b is c"在上面的示例中,我们定义了两个变量a和b,并使用(( ))语法计算它们的和。
在shell中的7种数值计算方法
在shell中的7种数值计算⽅法引⾔1. Linux shell 中使⽤ let , [ ] ,(( )) 三种运算符操作 shell 变量进⾏简单的基本运算;2. Linux shell 中使⽤ expr 与 bc 两个程序实现⾼级运算;闲话不多叙,直接上好货!let法let命令是BASH中⽤于计算的⼯具,⽤于执⾏⼀个或多个表达式,变量计算中不需要加上$来表⽰变量。
如果表达式中包含了空格或其他特殊字符,则必须引起来。
[root@host]# i=1[root@host]# let i=i+2[root@host]# echo $i3[root@host]# let i--[root@host]# echo $i2[root@host]# let i+=1[root@host]# echo $i3[ ]法"[ ]" 运算符⾥⾯可以使⽤ $ 符号引⽤变量,同时⽀持变量名与运算符之间不带空格。
[root@host]# i=1[root@host]# i=$[$i+2][root@host]# echo $i3(( ))法" (( )) " 运算符跟 " [ ] " 运算符⼀样,⾥⾯可以使⽤$符号引⽤变量,同时⽀持变量名与运算符之间不带空格。
[root@host]# i=1[root@host]# i=$(($i+2))[root@host]# echo $i3expr法"expr"命令⽀持$符号引⽤变量进⾏基本运算,但是变量与运算符之间必须使⽤空格作为分隔符,且表达式外部不能⽤引号括起来,否则被作为字符串处理;[root@host]# i=1[root@host]#expr $1 + 23[root@host]#expr"$1+2"$1+2bc法bc 命令是任意精度计算器语⾔,通常在linux下当计算器⽤。
shell 中 bc 的用法
shell 中 bc 的用法bc是一种用于计算数学表达式的命令行工具(计算器)。
使用bc,可以进行整数和浮点数的计算,支持基本的数学运算符和函数。
下面是bc命令的一些用法:1.基本的数学运算-加法:使用`+`进行相加操作(例如:`2 + 3`);-减法:使用`-`进行相减操作(例如:`5 - 2`);-乘法:使用`*`进行乘法操作(例如:`2 * 3`);-除法:使用`/`进行除法操作(例如:`6 / 2`);-取余:使用`%`进行取余操作(例如:`7 % 3`)。
2.括号优先级-可以使用括号`(`和`)`来设置运算的优先级。
3.浮点数的计算-使用`scale`命令设置小数的精度,默认为0;-通过使用`scale=n`命令,将小数的精度设置为n,例如:`scale=2`。
4.变量的使用-可以使用变量存储计算结果,通过`variable=expression`的形式进行赋值,例如:`x=2 + 3`。
5.函数的调用- bc支持一些常见的函数,例如指数函数`e(x)`、自然对数函数`l(x)`、平方根函数`sqrt(x)`等,可以通过函数名和参数的形式进行调用,例如:`e(2)`。
6.控制台输入-可以在命令行中通过输入表达式进行计算,或者通过命令行参数传递文件名作为输入,例如:`echo "2 + 3" | bc`或`bc filename`。
除了以上的基本用法外,还有一些bc的高级功能:-可以通过`scale`命令设置全局的小数精度;-支持条件判断和循环结构;-支持定义自定义函数;-支持大整数计算。
注意:bc默认的计算结果是以十进制形式输出的,如果需要其他进制的输出,可以通过使用`obase`命令来设置输出的进制,例如:`obase=16`(十六进制输出)。
