这段时间在写shell脚本,很疑惑的是,网上对shell变量的运算使用双括号“(())”,于是在网上查了查:

使用方法:

语法:

((表达式1,表达式2…))

特点:

1、在双括号结构中,所有表达式可以像c语言一样,如:a++,b--等。

2、在双括号结构中,所有变量可以不加入:“$”符号前缀。

3、双括号可以进行逻辑运算,四则运算

4、双括号结构 扩展了for,while,if条件测试运算

5、支持多个表达式运算,各个表达式之间用“,”分开

使用实例:

  • 扩展四则运算
1
2
3
4
5
6
7
8
9
10
11
#!/bin/sh
a=1;
b=2;
c=3;
((a=a+1));
echo $a;
a=$((a+1,b++,c++));
echo $a,$b,$c

运行结果:

sh testsh.sh
2
3,3,4

双括号结构之间支持多个表达式,然后加减乘除等c语言常用运算符都支持。如果双括号带:$,将获得表达式值,赋值给左边变量。

  • 扩展逻辑运算
1
2
3
4
5
6
7
8
9
10
#!/bin/sh
a=1;
b="ab";
echo $((a>1?8:9));
((b!="a"))&& echo "err2";
((a<2))&& echo "ok";

运行结果:

sh testsh.sh
9
err2
ok

  • 扩展流程控制语句(逻辑关系式)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#!/bin/sh
num=100;
total=0;
for((i=0;i<=num;i++));
do
    ((total+=i));
done
echo $total;
total=0;
i=0;
while((i<=num));
do
    ((total+=i,i++));
done
echo $total;
if((total>=5050));then
    echo "ok";
fi

运算结果:

sh testsh.sh
5050
5050
ok

有了双括号运算符:[[]],[],test 逻辑运算,已经let,expr 都可以抛到一边了。

关于shell脚本中双括号的问题相关推荐

  1. shell 脚本中双引号、单引号、反引号的区别,其他命令

    如果make执行的命令前面加了@字符,则不显示命令本身而只显示它的结果; Android中会定义某个变量等于@,例如 hide:= @ 通常make执行的命令如果出错(该命令的退出状态非0)就立刻终止 ...

  2. Shell脚本中 双引号(“”)单引号(‘’)反引号(``)的区别

    1.由单引号括起来的字符都作为普通字符出现.特殊字符用单引号括起来以后,也会失去原有意义,而只作为普通字符解释. 2.由双引号括起来的字符,除$(美元符号).\(反斜杠).'(单引号).和" ...

  3. linux怎么快速输入括弧,中括号怎么打-linux运维:shell脚本中花括号的使用技巧...

    通过括号扩展可以生成命令行或脚本所需要的字串,括号中可以包含连续的序列或使用逗 号分割的多个项目,连续的序列包括一个起点与一个终点,并使用".."分隔.接下来看看具体 的语法格式案 ...

  4. shell脚本中的括号和实例

    1.单圆括号和双圆括号 "双圆括号"命令允许将高级的数学表达式放入比较中.格式如下: (( expression )) 除了 test命令(if-then [])使用的标准数学运算 ...

  5. shell脚本中的花括号扩展

    shell脚本中的花括号扩展 在shell脚本中可以在花括号中使用一组以逗号分隔的字符串或者字符串序列来进行字符串扩展,最终输出的结果为以空格分隔的字符串(整数也可) [root@mao_aliyun ...

  6. shell脚本中的几个括号总结(小括号/大括号/花括号)

    [转载]shell脚本中的几个括号总结(小括号/大括号/花括号) (2011-10-08 21:23:34) 转载▼ 标签: 杂谈 分类: linux shell脚本中的几个括号总结(小括号/大括号/ ...

  7. shell脚本中一些特殊符号

    shell脚本中一些特殊符号 在shell中常用的特殊符号罗列如下: # ;   ;; . , / \\ 'string'| !   $   ${}   $? $$   $* \"strin ...

  8. 如何在Shell脚本中使用if-else?

    Moving ahead from our previous tutorial on arrays in shell scripts, let's understand how we can use ...

  9. Shell脚本中获取命令运行结果、特殊变量使用、条件判断等常用操作

    文章目录 前言 获取命令执行结果 使用反引号 `` ` ``command `` ` ``来执行命令 使用括号组合 $(command) 来执行命令 两种方式的区别 特殊变量使用 $0 $1 $2 . ...

最新文章

  1. 接入层的流程和非接入层
  2. App上架应用市场,如何攻破安全过检难题
  3. 如何在 Shell 脚本中执行语法检查调试模式
  4. 关于JetBrains CLion 激活 (CLion License Activation)的解决办法,带hosts详细修改
  5. localStorage封装借口store.js的使用
  6. LeNet-5——CNN经典网络模型详解(pytorch实现)
  7. ubuntu16.04安装搜狗拼音2.0.0.0072
  8. luogu P1503 鬼子进村
  9. 帮忙framebuffer扫盲
  10. Python最简单的图片爬虫,只用20行代码爬遍全网
  11. 汇编实验二——选出非负数以及排序
  12. 荧光微球激发光谱图/橙色荧光微球/绿色荧光微球/氨基红色荧光微球/氨基橙色荧光微球
  13. 刷脸支付就是会员为大商户管理与运营提供帮助
  14. 苹果自带地图包括路线规划
  15. APP开发学习思路指导
  16. 用Potplayer听音乐时,声音忽大忽小问题
  17. 算力狂热时代的冷静之道:宁畅总裁秦晓宁分享企业的算力最优解
  18. 北大SQL数据库视频教程
  19. 学习NLP的第9天——基于HanLP实现的拼音转换
  20. UE4工程打开快捷方式

热门文章

  1. 动画☀️Unity最新程序化动画绑定(Animation Rigging)
  2. 什么是泛在电力物联网?如何建设泛在电力物联网?——安科瑞 严新亚
  3. 00后专升本男孩入围阿里数学竞赛决赛,为钻研数学曾42天不碰手机,央视认证自律“狠”人...
  4. 如何开启Windows远程访问服务
  5. python 频繁项集_Apriori算法:从数据中挖掘频繁项集
  6. 国产bi VS国外bi,谁更适合中国企业?
  7. Python 集合(列表 ,元组,集合, 字典)
  8. chatGPT专项调研报告
  9. DVI接口详解及信号测试流程
  10. 醍醐灌顶:领域驱动设计实现之路