shell脚本

expr命令

优点:可以直接输出

缺点:计算表达式里面引用变量使用$,特数字符需要转义 只能计算一个表达式

计算        expr \( 10 + 10 \) \* 2 + 100

计算字符串长度        expr length 字符串

截取字符串                expr substr 字符串 start end

获取第某字符在字符串中出现的位置

        expr index 被查找字符串 要查找的字符

正则表达式1        expr match 字符串 正则表达式        expr match "itheima" ".*m"

正则表达式2        expr 字符串 :正则表达式         expr "itheima" : ".*m"

(()用法

优点:直接输出,直接使用变量名,特殊字符无需转义,多个表达式赋值

缺点:需要获取值以后才可以输出

括号内赋值

# 计算1+6赋值给变量a
((a=1+6))
# 计算变量a-1赋值给变量b
((b=a-1))
# 计算变量a+变量b赋值给变量c
((c=a+b))
# 打印变量a,变量b, 变量c的值
echo "a=${a},b=${b},c=${c}"

括号外赋值

# $赋值写法
a=$((1+6)) b=$((a-1)) c=$((a+b))

多表达式赋值

# (())多个表达式计算赋值
((a=1+6,b=a-1,c=a+b))
echo "a=${a},b=${b},c=${c}"

# echo输出直接使用(())
echo "1+6=$((1+6))"

与if条件配合使用
# (()) 用于逻辑表达式 在if中使用
if ((a>7 && b==c))
then
        echo "a>7 && b==c 成立"
else
        echo "a>7 && b==c 不成立"
fi

let数字计算

优点:赋值简单

缺点:不能直接输出

用于赋值,最简洁的整数运算赋值命令

# 计算变量a-1赋值给变量b
let a=1+6
let b=a-1

# 计算变量a+变量b赋值给变量c
let c=a+b

# 打印变量a,变量b, 变量c的值
echo "a=${a},b=${b},c=${c}"

# let多个表达式计算赋值
let a=1+6 b=a-1 c=a+b
echo "a=${a},b=${b},c=${c}"
 

$[ ]用法

优点:特殊字符无需转义

缺点:不能多表达式计算

# 计算1+6赋值给变量a
a=$[1+6]        echo $a

# 计算变量a-1赋值给变量b
b=$[a-1]        echo $b

# 计算变量a+变量b赋值给变量c
c=$[a+b]        echo $c

# 打印变量a,变量b, 变量c的值
echo "a=${a},b=${b},c=${c}"

# 直接输出
echo "$[1+6],$[7-1],$[7+6]"

bc计算器

bc命令是一个任意精度计算器

语法:bc [-options] 

-p 不显示欢迎信息        -l 使用标准数学库        quit 退出bc

bc中进行互动式运算:

        bc -p 进入bc环境 直接输入算数表达式 回车 计算结果

shell中进行非互动式的bc管道运算

        直接输出结果:echo "bc表达式" | bc [-options]

        赋值给变量:变量名=$(echo "bc表达式" | bc [-options])

shell中非互动式的输入重定向bc运算

        变量名=$(bc [-options] << EOF

        bc表达式

        EOF

        )

EOF..EOF 输入流的多行表达式

含义: 将EOF中间多行表达式输入给到bc去执行, 再将bc执行的结果给到Shell变量

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值