shell编程中变量的运算 (shell 06)
主要包括以下3种
字符串操作
数学运算
浮点运算
一.字符串操作
字符串的连接
连接字2个字符串不需要任何连接符,挨着写即可
长度获取
expr length "hello"
expr length "$str" 变量名必须放在双引号里,否者语法错误
查找字符串中字符的位置
expr index "$str" CHARS
第一个是从1 开始的,查找不到返回 0 ,返回匹配到的第一个字符的位置
[root@localhost110 ~]# echo $str
hello word
[root@localhost110 ~]# expr index "$str" h [root@localhost110 ~]# expr index "$str" hel (只匹配h) [root@localhost110 ~]# expr index "$str" a
字符串截断
expr substr "$str" POS LENGTH
POS起始位置(包含),LENGTH 长度
[root@localhost110 ~]# expr substr "$str"
word
字符串匹配
expr "$str" : REGEXP (冒号前后都得有空格)
expr mathch "$str" REGEXP
必须完整匹配才行
[root@localhost110 ~]# echo $str
aBcD phP2016ajax
[root@localhost110 ~]# expr "$str" : '\([a-z]* [a-z]*\)'
aBcD phP
expr运算
http://www.cnblogs.com/HKUI/articles/6548798.html
二.数学运算
逻辑运算
数值运算
逻辑运算
&,|,<,>,=,!=,<=,>=
数值运算
+,-,*,/,%
expr expression
result=$[expression]
[root@localhost110 sh]# echo $num1,$num2,$num3
,,
[root@localhost110 sh]# expr $num1<$num2
-bash: : 没有那个文件或目录
操作符两边 要有空格
[root@localhost110 sh]# expr $num1\<$num2
<
[root@localhost110 sh]# expr $num1 \< $num2 [root@localhost110 sh]# expr $num1 = $num3 [root@localhost110 sh]# expr $num1 = $num2 expr中用=判断是否等
在[]中== [root@localhost110 sh]# res=$[$num1=$num3]
-bash: 1=1: attempted assignment to non-variable (error token is "=1")
[root@localhost110 sh]# res=$[$num1==$num3]
[root@localhost110 sh]# echo $res
1
数字运算
[root@bogon sh]# a=;b=;c=$a+$b;echo $c;
+
[root@bogon sh]# a=;b=;c=[$a+$b];echo $c;
[+]
[root@bogon sh]# a=;b=;c=$[$a+$b];echo $c; [root@bogon sh]# a=;b=2.5;c=$[$a+$b];echo $c;
-bash: +2.5: 语法错误: 无效的算术运算符 (错误符号是 ".5")
[root@bogon sh]# a=;b=2.10;c=`echo $a+$b|bc`
[root@bogon sh]# echo $c
3.10
浮点数运算
内建计算器 bc
bc能够识别:
数字(整型和浮点型)
变量
注释 (以 #开始的行 或者/* */)
表达式
编程语句 (如条件判断 :if-then)
函数
bc -q 能忽略版本信息等提示语
scale可设置精度
[root@localhost110 sh]# bc -q
/ scale=
/
3.3333
num1=;num2=
num1/num2
3.3333
quit
在脚本中使用bc
1.
var=`echo "options;expression" |bc `
[root@localhost110 sh]# res=`echo "scale=4;10/3" |bc`
[root@localhost110 sh]# echo $res
3.3333
.
res=`bc<<E
options
statements
expressions
E
`
[root@localhost110 sh]# res=`bc <<E
> a=
> b=
> scale=
> c=a/b
> c
> E`
[root@localhost110 sh]# echo $res
3.3333
shell编程中变量的运算 (shell 06)的更多相关文章
- shell编程中用户输入处理(shell 04)
shell编程中用户输入处理1.命令行参数2.脚本运行时获取输入 命令行参数 通过空格来进行分割的位置参数 :$+position $0,$1,$2 ....$0 :程序名$1,$2,$3 ... $ ...
- Shell编程中变量用法
1. 变量替换 语法 说明 ${变量名#匹配规则} 从变量开头进行规则匹配,将符合最短的数据删除 ${变量名##匹配规则} 从变量开头进行规则匹配,将符合最长的数据删除,贪婪匹配 ${变量名%匹配规则 ...
- Linux学习——shell编程之变量
shell编程之变量:Linux shell编程基础中的变量. 包括Bash变量的分类和各变量的详细使用,如:用户自定义变量.环境变量.语系变量.位置参数变量和预定义变量. 1:什么是Bash变量? ...
- shell编程系列5--数学运算
shell编程系列5--数学运算 方法1 expr $num1 operator $num2 方法2 $(($num1 operator $num2)) expr操作符对照表1 操作符 含义 num1 ...
- Shell编程中while与for的区别及用法详解【转】
在shell编程中经常用到循环,常用的循环有for和while循环两种.while循环默认以行读取文件,而for循环以空格读取文件切分文件,本篇就结合现网的一些使用示例说说二者的用法和区别. 一.常用 ...
- shell编程中的 三种结构: 条件if/选择结构case/循环for/while/until等结构 和 函数的用法
shell 函数的使用 (md中, 列表本身是有格式的, 他要产生缩进, 其次,列表项和列表项之间, 可以留有一个空行, 是合法的, 允许的) shell函数,就是 就相当于一个命令来看待和处理的, ...
- shell编程中的单/双 小括号, 中括号, 大括号
linux shell中的变量类型?分字符串或者数字或者bool类型吗? 参考: http://www.cnblogs.com/nufangrensheng/p/3477281.html 不分! sh ...
- [ SHELL编程 ] shell编程中数值计算方法实例
SHELL编程中经常会涉及到数值计算,有时候对于这些计算命令使用场景容易忘记或者混淆,这里针对常用的命令做个总结.主要包括let.bc.expr.(())等. 1.let 使用格式:let 表达式,表 ...
- SHELL编程概念&变量剖析
一.shell软件概念和应用场景 1) 学习Linux技术,不是为了学习系统安装.命令操作.用户权限.配置IP.网络管理,学习Linux技术重点:基于Linux系统部署和维护各种应用软件.程序(Apa ...
随机推荐
- windows系统下载地址大全&大白菜下载和教程
win10的 Windows10 64位纯净系统下载(不建议,后面的有原版) http://cjxt.sysdaa.com/down.php?post=win10-64&action=bend ...
- android studio 慢的问题
转自:http://www.jianshu.com/p/e1c0b46e317c 在使用Android studio的时候常常遇到这样的问题,从github或是其他地方导入项目,Android stu ...
- 浅谈MySQL中优化sql语句查询常用的30种方法 - 转载
浅谈MySQL中优化sql语句查询常用的30种方法 1.对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引. 2.应尽量避免在 where 子句中使 ...
- Java解析XML的四种方法详解 - 转载
XML现在已经成为一种通用的数据交换格式,平台的无关性使得很多场合都需要用到XML.本文将详细介绍用Java解析XML的四种方法 在做一般的XML数据交换过程中,我更乐意传递XML字符串,而不是格式化 ...
- ScrollView嵌套使用ListView冲突的解决与分析
因为ScrollView与ListView都是具有滚动条的控件,所以嵌套在一起使用的时候可能会出现事件的冲突,比如我就遇见了ListView中只显示一条数据的问题.解决的办法,就是自定义了一个List ...
- php源码之appveyor
打开appveyor目录 是4个bat文件 1. .bat是什么? bat文件是dos下的批处理文件.批处理文件是无格式的文本文件,它包含一条或多条命令. 它的文件扩展名为.bat或.cmd 在命令提 ...
- 爬虫第六篇:scrapy框架爬取某书网整站爬虫爬取
新建项目 # 新建项目$ scrapy startproject jianshu# 进入到文件夹 $ cd jainshu# 新建spider文件 $ scrapy genspider -t craw ...
- ROC 曲线,以及AUC计算方式
ROC曲线: roc曲线:接收者操作特征(receiveroperating characteristic),roc曲线上每个点反映着对同一信号刺激的感受性. ROC曲线的横轴: 负正类率(false ...
- ImageView显示图像控件
ImageView显示图像控件 一.简介 1. 2. ImageView,图像视图,直接继承自View类,它的主要功能是用于显示图片,实际上它不仅仅可以用来显示图片,任何Drawable对象都可以使用 ...
- Shell for、while循环
先顺带说下 if 1. if 条件;then else fi 如果else分支没有执行语句,可以不写. 2. if 条件;then elif 条件;then else fi #!/bin/bash ...