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 程式進階除錯教學 - 使用WinDbg
https://caryhsu.blogspot.com/2011/11/net-windbg.html 從以前一直研究基金方面的資訊,但由於沒有多於的時間常常觀看,再加上碩士時在我 ...
- 探索 vuex 2.0 以及使用 vuejs 2.0 + vuex 2.0 构建记事本应用23
前言 首先说明这并不是一个教程贴,而记事本应用是网上早有的案例,对于学习 vuex 非常有帮助.我的目的是探索 vuex 2.0 ,然后使用 vuejs 2.0 + vuex 2.0 重写这个应用,其 ...
- CSS3技巧:fit-content水平居中
当我们让一个模块水平居中首先想到的肯定是margin:0 auto;有木有?那么今天给大家介绍一个fit-content属性,不知道有没有同学用过,如果用过那么你可以略过这篇文章,没用过的同学就继续了 ...
- PTC介绍
付费点击或按就付(英文:Paid-To-Click,缩写作PTC或pay_per-click)是一种点击付费的线上商业模式.PTC的经营模式是以PTC网站作为广告客户和消费者的仲介,广告客户付钱给经营 ...
- InfluxDB写流程
Influxdb version1.8 HTTP: 0x00000000016d0ce3 in github.com/influxdata/influxdb/coordinator.(*PointsW ...
- socket连接和http连接的区别
socket连接和http连接的区别 HTTP协议:简单对象访问协议,对应于应用层 ,HTTP协议是基于TCP连接的 tcp协议: 对应于传输层 ip协议: 对应于网络层 TCP/IP ...
- Windows Server 2008 远程桌面连接拒绝
(1)远程连接的时候在本地用户名添加域名 现象:在Windows2008R2配置成域控制器前,还没有安装AD,管理员Admistrator以及新创建的用户(创建的时候将该用户加入远程桌面管理组),发现 ...
- JVM调优思路
一.jvm内存调优 (Gc 和 Full gc) hotspot -Xms40m 最小堆内存 -Xmx512m 最大值内存 -verboose:gc -XX:PrintGCDetails -XX: ...
- shader cycles静态分析
mali Mali Offline Compiler https://developer.arm.com/products/software-development-tools/graphics-de ...
- Android(Fragment和Activity之间通信)
Fragment的使用可以让我们的应用更灵活的适配各种型号的安卓设备,但是对于Fragment和Activity之间的通信,很多朋友应该比较陌生,下面我们就通过一个实例来看一看如何实现. 一.Acti ...