shell中let 命令与Expr命令介绍
来源:互联网 发布:流动人口大数据 编辑:程序博客网 时间:2024/05/17 01:08
let 命令介绍:
Let命令让BASH shell执行算数运算的操作,使用let,可以比较两运算数值或者执行加减乘除等运算操作,这种操作往往用于shell程序中的流程控制结构或者执行需要的运算,注意let只能执行整数的相关操作,运算结果也只能保存整数。
使用方法如下:
let 变量名 = 变量1 运算符 变量2
常见的算数操作分类:
加法:+
减法:-
除法:/
乘法:*
取余数:%
Let命令使用方法举例:
注意:和c语言类似,;let i=$i+1可以写成let i++来简化书写
Shell实例1:
[root@ChangerLee 运算比较符]#cat let_op.sh #!/bin/bash#some examples about let num1=106num2=10num3=5#oprating let res1=${num1}+${num2}+${num3}let res2=${num1}-${num2}-${num3}let res3=${num1}*${num2}*${num3}let res4=${num1}/${num2}/${num3}let res5=${num1}%${num2}%${num3}#output resultsecho "num1+num2+num3=${res1}"echo "num1-num2-num3=${res2}"echo "num1*num2*num3=${res3}"echo "num1/num2/num3=${res4}"echo "num1%num2%num3=${res5}"[root@ChangerLee 运算比较符]#sh let_op.sh num1+num2+num3=121num1-num2-num3=91num1*num2*num3=5300num1/num2/num3=2num1%num2%num3=1
注意num1/num2/num3得到结果为整数2,说明let只能保留整数结果并将小数部分截取掉
Shell实例2:
[root@ChangerLee 运算比较符]#cat let_op_v1.sh #!/bin/bash# let and while i=10num=1 while [ 1 ]doif [ $num -le $i ]then echo "$num"elsebreakfilet num=$num+1done[root@ChangerLee 运算比较符]#sh let_op_v1.sh 12345678910
Let不适用于小数之间的运算:
Shell实例3:
<span style="font-size:18px;"><strong>[root@ChangerLee 运算比较符]#let 1+1[root@ChangerLee 运算比较符]#let 1.1+1-bash: let: 1.1+1: syntax error: invalid arithmetic operator (error token is ".1+1")</strong></span>
Expr命令介绍:
Expr在linux命令中和let功能类似,它作算数运算时,只能进行整数类型的运算,不能保存小数结果。Expr还可以进行字符串之间的运算。
Expr的使用方法如下:
Expr expression1 操作符expression2
操作符必须加’\’用于转义,并且操作符和两个expression之间必须有空格(这一点与let不同)且Expr 不适合小数的运算。
常见的算数操作分类:
加法:+
减法:-
乘法:*
除法:/
取余数:%
Expr使用方法举例:
(1)执行常用的算数运算操作:
Shell实例4:
[root@ChangerLee 运算比较符]#cat expr_op_v1.sh #!/bin/bash#an exmple of expr num1=56num2=10num3=5echo "num1:$num1 num2:$num2 num3:$num3"#operating numres1=`expr $num1 \+ $num2 \+ $num3`res2=`expr $num1 \- $num2 \- $num3`res3=`expr $num1 \* $num2 \* $num3`res4=`expr $num1 \/ $num2 \/ $num3`res5=`expr $num1 \% $num2 \% $num3`#output resultsecho "num1+num2+num3=$res1"echo "num1-num2-num3=$res2"echo "num1*num2*num3=$res3"echo "num1/num2/num3=$res4"echo "num1%num2%num3=$res5"[root@ChangerLee 运算比较符]#sh expr_op_v1.shnum1:56 num2:10 num3:5num1+num2+num3=71num1-num2-num3=41num1*num2*num3=2800num1/num2/num3=1num1%num2%num3=1
</pre><p><strong><span style="font-family:Microsoft YaHei;font-size:18px;">Shell实例5:</span></strong></p><p><strong><span style="font-family:Microsoft YaHei;font-size:18px;"></span></strong></p><pre name="code" class="html">[root@ChangerLee 运算比较符]#cat expr_op_v2.sh #!/bin/bash# let and while i=10num=1 while [ 1 ]doif [ $num -le $i ]then echo "$num"elsebreakfinum=`expr $num \+ 1`done[root@ChangerLee 运算比较符]#sh expr_op_v2.sh 12345678910
Shell实例6:
[root@ChangerLee 运算比较符]#expr 1 \+ 12[root@ChangerLee 运算比较符]#expr 1.1 \+ 1expr: non-integer argument
(2)执行常用的字符串操作
1.输出字符串的长度
<strong><span style="font-size:18px;">[root@ChangerLee 运算比较符]#cat expr_str.sh #!/bin/bash#output length str str1="this str length is 21"str2="blog.csdn.net/changerjjlee" echo '${#str1}'${#str1}expr length $str2[root@ChangerLee 运算比较符]#sh expr_str.sh ${#str1}2126</span></strong>
注意:expr只能输出不含有空格的字符串
2.取字串的操作
expr substr $string $postion $length 位置编号从1开始
echo ${$string:$postion:$length}位置编号从0开始
Shell实例7:
[root@ChangerLee 运算比较符]#string="abcdefghi"[root@ChangerLee 运算比较符]#expr substr $string 1 3abc[root@ChangerLee 运算比较符]#echo ${string:0:3}abc
(3)字符串连接的操作
Shell实例8:
<strong>[root@ChangerLee 运算比较符]#cat con_str_v1.sh #!/bin/bash#connection of strings str1="abc"str2="def ghi"str3="${str1}$str2" echo "str1=$str1"echo "str2=$str2"echo "str3=$str3"[root@ChangerLee 运算比较符]#sh con_str_v1.sh str1=abcstr2=def ghistr3=abcdef ghi</strong>
(4)字符串替换的操作
Shell实例9:
<strong><span style="font-size:18px;">[root@ChangerLee 运算比较符]#cat con_str_v2.sh #!/bin/bash string="blog.csdn.net/changerjjlee"echo ${string/c/C}#只替换一次echo ${string//c/C}#全部替换[root@ChangerLee 运算比较符]#sh con_str_v2.sh blog.Csdn.net/changerjjleeblog.Csdn.net/Changerjjlee</span></strong>
- shell中let 命令与Expr命令介绍
- shell let expr $(()) 命令
- Linux shell命令中expr
- shell的expr命令
- Linux中expr命令
- Linux中expr命令
- Linux中expr命令
- Linux中expr命令
- Linux中expr命令
- shell--let-expr
- bash shell中expr命令下几种的使用
- bash shell中expr命令下几种的使用
- bash shell中expr命令下几种的使用
- bash shell中expr命令下几种的使用
- bash shell中expr命令下几种的使用
- bash shell中expr命令下几种的使用
- shell中expr命令下几种的使用--待整理
- 一天一条shell命令----------expr命令
- CMOS Sensor的调试经验分享
- Editext 优化
- css动画效果
- AutoCamera - 极简的Android拍照/相册/截图调用方法
- PHP开发中遇到的关于PHP及JS跳转的方法总结
- shell中let 命令与Expr命令介绍
- NSIS System Plug-in
- epoll的优点
- EventBus源码阅读(1)-ThreadMode
- VS 宏目录配置(ICE项目属性配置)
- hadoop HDFS存储原理
- hdu 5805 NanoApe Loves Sequence (水题)
- lanchimage不显示
- CAS单点登录(二)---非SSL协议 CAS服务端部署及客户端配置