shell中$(( )) 与 $( ) 还有${ }的用途及区别

一、$( ) 与 ` ` (反引号) 的区别
     在 bash shell 中,$( ) 与 ` ` (反引号) 都是用来做命令替换用(command substitution)的。但是对于初学者来说,` ` 很容易与 ' ' ( 单引号)搞混乱。 而$( ) 则比较直观。
      ` ` 基本上可用在全部的 unix shell 中使用,若写成 shell script ,其移植性比较高。而 $( ) 并不见的每一种 shell 都能使用。

二、${ } 的作用
${ } 用来作变量替换。
一般情况下,$var 与 ${var} 并没有啥不一样。
但是用 ${ } 会比较精确的界定变量名称的范围,比方说:
$ A="b"
$ AB="ab"
$ echo $AB
     原本是打算先将 $A 的结果替换出来,然后再补一个 B 字母于其后,但在命令行上,真正的结果却是只会提换变量名称为 AB 的值出来,结果却是输出了ab,若使用 ${ } 就没问题了。
$ echo ${A}B
那么输出的结果将是bB。
另外${}还有很多强大的功能,如下。
假设我们定义了一个变量为:
file="http://mp.blog.csdn.net/postedit"
我们可以用 ${ } 分别替换获得不同的值:
${file#*/}:拿掉第一条 / 及其左边的字符串:/mp.blog.csdn.net/postedit
${file#*//}:拿掉第一条 // 及其左边的字符串:mp.blog.csdn.net/postedit
${file##*/}:拿掉最后一条 / 及其左边的字符串:postedit
${file#*.}:拿掉第一个 .  及其左边的字符串:blog.csdn.net/postedit
${file##*.}:拿掉最后一个 .  及其左边的字符串:net/postedit
${file%/*}:拿掉最后条 / 及其右边的字符串:http://mp.blog.csdn.net
${file%%/*}:拿掉第一条 / 及其右边的字符串:http:
${file%.*}:拿掉最后一个 .  及其右边的字符串:http://mp.blog.csdn
${file%%.*}:拿掉第一个 .  及其右边的字符串:http://mp
${file:0:5}:提取最左边的 5 个字节:   http:
${file:5:5}:提取第 5 个字节右边的连续 5 个字节: //mp.
我们也可以对变量值里的字符串作替换:
${file/http/https}:将第一个 http 提换为 https:  https://mp.blog.csdn.net/postedit
${file//t/T}:将全部 t 提换为 T:hTTp://mp.blog.csdn.neT/postediT
最后,${#var} 可计算出变量值的长度:
${#file} 可得到 32

三、 $(( )) 的用途

 $(( ))是用来作整数运算的。
例:
$ a=5; b=7; c=2
$ echo $(( a+b*c ))
19
$ echo $(( (a+b)/c ))
6
$ echo $(( (a*b)%c))
1


在 $(( )) 中的变量名称,可于其前面加 $ 符号来替换,也可以不用,如:
$(( $a + $b * $c)) 也可得到 19 的结果

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

5448698yy

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值