Bash中的括号(三)
1、两个小括号用来对整数进行算术运算和逻辑运算,比如。
例如给变量赋值:
$ a=+; echo $a
+
$ (( b = + )); echo $b
1+1 只是一个字符串,而 b 就是一个算术表达式结果。
正是因为是算术表达式,所以比较也是按数字本身而不是字符串:
$ (( > )); echo $? $ (( > )); echo $? $ (( > )); echo $?
所以也可以套上 if 语句来用:
[root@noi ~]# if((>))
> then
> echo "right,3>1"
> fi
right,>
[root@noi ~]# a=;b=
[root@noi ~]# if((a>b));then
> echo "$a > $b"
> else
> echo "$a < $b"
> fi
<
2、(())还具有C语言类型变量增减的功能。如:
[root@noi ~]# a=
[root@noi ~]# ((a++))
[root@noi ~]# echo $a
3、只要括号中的运算符、表达式符合C语言运算规则,都可用在$((exp))中,甚至是三目运算符。作不同进位(如二进制、八进制、十六进制)运算时,
输出结果全都自动转化成了十进制。如:
[root@noi ~]# echo $((#5f))
4、双括号中的变量可以不使用$符号前缀。括号内支持多个表达式用逗号分开。
#这个i不用$,是因为这里是定义,而不是使用
[root@noi ~]# for i in $(seq )
> do
#因为i在双括号中,可以省掉$,可以看出shell也是挺人性化的,只要不是为了填坑,尽量方便大家哦。
> if((i%==));then
> echo $i
> fi
> done
看到没?有的加了$,有的却不需要,但是原谅bash吧,它的奇怪行为大多为了填坑补洞。
上面的式子用for写:
[root@noi ~]# for((i=;i<;i++))
> do
> if((i%==))
> then
> echo $i
> fi
> done
5、附加几个常用的式子:
if ($i<)
if [ $i -lt ]
if [ $a -ne -a $a != ]
if [ $a -ne ] && [ $a != ]
if [[ $a != && $a != ]] for i in $(seq );do echo $i;done
for i in `seq `;do echo $i;done
for ((i=;i<;i++));do echo $i;done
for i in {..};do echo $i;done
先写到这里,特别感谢:
http://blog.csdn.net/tttyd/article/details/11742241
http://blog.csdn.net/xibeichengf/article/details/51226052
http://blog.csdn.net/u012598668/article/details/42236427
Bash中的括号(三)的更多相关文章
- Bash中的括号(一)
初学Bash脚本编程,里面的各种括号,绝对是一个大坑,为了救人救己,以防再度入坑,特记录如下: 一.单小括号: 1.创建子Shell.单个小括号用来创建一个子shell,子shell允许你在不影响当前 ...
- bash 中 小括号的作用
单小括号 () ①命令组.括号中的命令将会新开一个子shell顺序执行,所以括号中的变量不能够被脚本余下的部分使用.括号中多个命令之间用分号隔开,最后一个命令可以没有分号,各命令和括号之间不必有空格. ...
- Bash中的括号(二)
双方括号[[]]的用法: 1.先举个例子说明: 假如你要再判断某个目录是否存在,又想当然写成: $ [ -f exists.txt && -d exists_folder ]; ech ...
- Linux Bash Shell快速入门 (三)
forfor 循环结构与 C 语言中有所不同,在 BASH 中 for 循环的基本结构是: for $var in dostatmentsdone 其中 $var 是循环控制变量, 是 $var 需要 ...
- shell中各种括号的作用()、(())、[]、[[]]、{}
一.小括号,圆括号() 1.单小括号 () ①命令组.括号中的命令将会新开一个子shell顺序执行,所以括号中的变量不能够被脚本余下的部分使用.括号中多个命令之间用分号隔开,最后一个命令可以没有 ...
- (转载)Bash 中的特殊字符大全
转自:https://linux.cn/article-5657-1.html Linux下无论如何都是要用到shell命令的,在Shell的实际使用中,有编程经验的很容易上手,但稍微有难度的是she ...
- bash中(),{},(()),[],[[]]的区别
前言:在bash中遇到各种括号,同时在进行字符数值比较判定时,总是不断出现问题,于是通过参考<advanced bash-scripting guide>,同时在centos 6.7版本上 ...
- shell 中各种括号的作用()、(())、[]、[[]]、{}
一.小括号,圆括号 () 1.单小括号 () 命令组.括号中的命令将会新开一个子shell顺序执行,所以括号中的变量不能够被脚本余下的部分使用.括号中多个命令之间用分号隔开,最后一个命令可以没有分号, ...
- Bash 中的特殊字符大全【转】
Linux下无论如何都是要用到shell命令的,在Shell的实际使用中,有编程经验的很容易上手,但稍微有难度的是shell里面的那些个符号,各种特殊的符号在我们编写Shell脚本的时候如果能够用的好 ...
随机推荐
- 这些年,我们一直追随的.NET
闲来无事,浏览自己的QQ空间,意外发现自己在13年1月份的发在QQ空间写的一片关于技术的随笔,觉得应该将其移到这里: 这些年,我们一直追随的.NET 前两天,意外地看到了.NET平台为异 ...
- PTCSolution 关注
2013.12.28更新: 经过几次整理和再次租赁下线,点击数明显增加,现在995下线点击数3413.再将2页半的点击数低的下线替换掉,AVG肯定超过4. 这么短的时间整理效果如此明显是我没有想到 ...
- BrowserSync-多浏览器测试工具
阅读目录 自动刷新 介绍BrowserSync BrowserSync具体使用 BrowserSync配合gulp 自动刷新 自动刷新,顾名思义,就是不用我们去F5刷新.假设有一天我们写代码,只需要c ...
- 【Todo】机器学习系列
看了这篇文章很好,有很多指导性思想: http://www.cnblogs.com/tornadomeet/p/3395593.html 另外这个人的系列文章里面也有很多干货. 就看这个系列的吧: h ...
- deferred rendering with msaa
https://docs.nvidia.com/gameworks/content/gameworkslibrary/graphicssamples/d3d_samples/antialiasedde ...
- vue项目中使用地图组件
一.引入高德地图 一般用使用vue-cli webpack最简单粗暴的引入地图api的方法就是,在入口index.html的头部直接引入,记得一定要带上key,如果没有的话去高德地图api的官网申请一 ...
- DevExpress 中 汉化包 汉化方法
刚试了一下,直接把汉化包放在 Debug 目录下也是可以的.直接会汉化 第一步: 在Debug 下添加 zh-CN 汉化包(自行下载) 第二步: 在 Program.cs中添加以下代码 : Syste ...
- pip安装scrapy时报错:error: Unable to find vcvarsall.bat
网上一堆胡说八道的,请看微软官方文章: https://blogs.msdn.microsoft.com/pythonengineering/2016/04/11/unable-to-find-vcv ...
- PHP Variable Scope
原文: https://phppot.com/php/variable-scope-in-php/ Last modified on March 24th, 2017 by Vincy. ------ ...
- Python游戏引擎开发(七):绘制矢量图
今天来完毕绘制矢量图形. 没有读过前几章的同学,请先阅读前几章: Python游戏引擎开发(一):序 Python游戏引擎开发(二):创建窗体以及重绘界面 Python游戏引擎开发(三):显示图片 P ...