shell脚本 字符串 数字操作

expr允许在命令行上处理数学表达式
var=$(expr $a / $b) 注意:等号之间没有空格

ARG1 | ARG2 如果ARG1既不是null也不是零值,返回ARG1,否则返回ARG2

ARG1 & ARG2 如果没有参数是null或者零值,返回ARG1, 否则返回0
ARG1 < ARG2 如果ARG1小于ARG2则返回1 否则返回0
ARG1 <= ARG2 如果ARG1小于等于ARG2则返回1 否则返回0
ARG1 = ARG2 如果ARG1等于ARG2则返回1 否则返回0
ARG1 != ARG2 如果ARG1不等于ARG2则返回1 否则返回0
ARG1 >= ARG2 如果ARG1大于等于ARG2则返回1 否则返回0
ARG1 > ARG2 如果ARG1大于ARG2则返回1 否则返回0
ARG1 + ARG2
ARG1 - ARG2
ARG1 * ARG2
ARG1 / ARG2
ARG1 % ARG2
** 字符串操作**
STRING : REGEXP 如果REGEXP匹配到了STRING中的某个模式返回正则匹配的字符个数
(var1= ( e x p r " (expr " (expr"str1" : “.”))
match STRING REGEXP 如果REGEXP匹配到了STRING中的某个模式返回正则匹配的字符个数
substr STRING POS LENGTH 返回起始位置为POS(从1开始计数)长度为length个字符的子字符串
index STRING CHARS 返回字符串STRING中找到CHARS字符串的位置;否则,返回0
length STRING 返回字符串STRING的长度

  • TOKEN 将TOKEN解释成字符串,即使是一个关键字
    EXPRESSION 返回EXPRESSION的值
array=${str//,/} 将字符串以逗号为标识符分割成数组
数组访问方式${array[1]}

sed命令
sed参数是变量,变量中有特殊字符,如何处理
当使用sed命令替换内容时,有时会用到变量,如

sed -i “s/^abc=[ -~]/app=$2/g" fileName,$2=“djdh/dfsadf/sdfa”,这时要怎么办?
将命令行中/换成?即可
sed -i "s?^abc=[ -~]
?app=$2?g” fileName
这种方式只是换了个分隔符(/变成?),当然也可以改成任意其他字符,但是变量中有其他特殊字符的话依然无法处理

可以使用$[ operation ]来进行数学计算但是只能计算整数

小数计算方法



variable=$(echo "options; expression" | bc)
例如:var=$(echo "scale=4; 3.44 / 5" | bc)

#使用内联输入重定向
var=$(bc << EOF
   scale = 4
   3.44 / 5                                                                                             
   EOF
  )
在这里插入代码片
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值