日期: 2022-09-21 05:46:28 浏览数:4

上往建站提供服务器空间服务商,百度快照排名,网站托管,百度推广运营,致力于设计外包服务与源代码定制开发,360推广,搜狗推广,增加网站的能见度及访问量提升网络营销的效果,主营:网站公司,百度推广公司电话,官网搭建服务,网站服务企业排名,服务器空间,英文域名等业务,专业团队服务,效果好。
曲靖爱采购会员/58同城会员账户/百度竞价开户/百家号注册运营/推广公司网站-网站营销全网推广

Shell 基本运算符
Shell 和其他编程语言一样,支持多种运算符,包括:
算数运算符
关系运算符
布尔运算符
字符串运算符
文件测试运算符
原生bash不支持简单的数学运算,但是可以通过其他命令来实现,例如 awk 和 expr,expr 最常用。
expr 是一款表达式计算工具,使用它能完成表达式的求值操作。
例如,两个数相加(注意使用的是反引号 ` 而不是单引号 '):
实例
#!/bin/bash
val=`expr 2 + 2`
echo "两数之和为 : $val"
运行实例 »
执行脚本,输出结果如下所示:
两数之和为 : 4
两点注意:
表达式和运算符之间要有空格,例如 2+2 是不对的,必须写成 2 + 2,这与我们熟悉的大多数编程语言不一样。
完整的表达式要被 ` ` 包含,注意这个字符不是常用的单引号,在 Esc 键下边。
算术运算符
下表列出了常用的算术运算符,假定变量 a 为 10,变量 b 为 20:
运算符 说明 举例
+ 加法 `expr $a + $b` 结果为 30。
- 减法 `expr $a - $b` 结果为 -10。
* 乘法 `expr $a * $b` 结果为 200。
/ 除法 `expr $b / $a` 结果为 2。
% 取余 `expr $b % $a` 结果为 0。
= 赋值 a=$b 把变量 b 的值赋给 a。
== 相等。用于比较两个数字,相同则返回 true。 [ $a == $b ] 返回 false。
!= 不相等。用于比较两个数字,不相同则返回 true。 [ $a != $b ] 返回 true。
注意:条件表达式要放在方括号之间,并且要有空格,例如: [$a==$b] 是错误的,必须写成 [ $a == $b ]。
实例
算术运算符实例如下:
实例
#!/bin/bash
# author:菜鸟教程
# url:www.runoob.com
a=10
b=20
曲靖爱采购会员/58同城会员账户/百度竞价开户/百家号注册运营/推广公司网站-网站营销全网推广
上往建站提供搭建网站,域名注册,官网备案服务,网店详情页设计,企业网店,专业网络店铺管理运营全托管公司咨询电话,服务器空间,微信公众号托管,网页美工排版,致力于域名申请,竞价托管,软文推广,全网营销,提供标准级专业技术保障,了却后顾之忧,主营:虚拟主机,网站推广,百度竞价托管,网站建设,上网建站推广服务,网络公司有哪些等业务,专业团队服务,效果好。
服务热线:400-111-6878 手机微信同号:18118153152(各城市商务人员可上门服务)
输出结果:
实例 2
输出结果:
shita09
shi***9@sina.com
陈东谱
232***8881@qq.com
用 for 循环遍历数组:
#!/bin/bash arr=(1 2 3 4 5 6 7 8 9 10) for a in ${arr[*]} do echo $a done陈东谱
232***8881@qq.com
Vivienne
122***9485@qq.com
字符串转数组:
#!/bin/bashwords="aaa bbb ccc"#字符串转数组,空格是分隔符array=(${words// / })#打印数组最后一个成员echo ${array[${#array[*]}-1]}#打印数组长度echo ${#array[*]}#字符串不转换为数组,在循环实现以空格为分隔符打印每个成员for word in ${words}; do echo ${word}done运行结果:Vivienne
122***9485@qq.com
菜农
414***798@qq.com
使用 while 循环来遍历数组,对于顺序填满的数组来说,这个没有问题,然而,有些人会忽视另外一种情况,例如:
如果使用查询数组长度,这时候数组的长度不是 21,也一样是 3,如果用数组长度来控制输出的方法,这时,输出是:
a=1b=2c=100d=99array=($a $b $c $d)echo ${array[*]}array[20]=verilog echo -e "use while && let ++ print every element"i=0while [ $i -lt ${#array[@]} ]do echo ${array[$i]} let i++doneecho "*******************"运行结果是:
菜农
414***798@qq.com
RosenYin
l23***38399@163.com
字符串替换
使用 string/pattern/string 进行首个 pattern 的替换
> string="text, dummy, text, dummy"> echo ${string/text/TEXT}TEXT, dummy, text, dummy使用 string//pattern/string 进行全部 pattern 的替换
> string="text, dummy, text, dummy"> echo ${string//text/TEXT}TEXT, dummy, TEXT, dummyRosenYin
l23***38399@163.com