bash 括号

目录

"[]"与test

$()和``

$[]和$(( ))

[[ ]]

(( ))


"[]"与test

[] 是test命令的另一种形式,用于判断某个表达式的返回值是0或者非0,常用于if命令的判断条件

test $a=="Linux"等于[$a=="Linux"]

$()和``

$()和``的作用一致,都是用来做命令替换用,一般用于将命令返回的结果传递给变量

a=$(ls /home/hadoop101/)

a=`ls /home/hadoop101/\`

a保存的是上述命令的返回值,即一个目录列表

$[]和$(( ))

进行数学运算,支持±*/%,并且在$[ ]和$(( ))中使用变量不需要$引用,可以直接使用变量名

echo $[2+7]

9

a=3;b=4;echo $[$a+$b]

7

echo $((2+7))

9

a=3;b=4;echo $(($a+$b))

7

a=3;b=4;echo $((a+b))

7

同样可以进行数学运算的还有expr命令和bc命令

echo`expr3 + 4`
7

echo`expr3+4`
3+4

echo`expr3 \* 4`
12

注意:+-*/的左右各需要一个空格,expr3+4 则无法正确运算,另外使用*/需要转义字符,加减不需要

bc是linux的计算器,是交互式命令,但是bc支持从标准输入中读取参数及逆行运算,但是bc不支持从命令行中读取运算式

bc"3+4"File3+4is unavailable.
echo"3+4"|bc
7

[[ ]]

[[ ]]是[ ]的增强版,其返回值也是0或者非0
	• 在[[ ]]中使用> < 等符号不需要转义字
[root@linuxforliuhj ~]# cat a.txtif[ $1\> 5 ]
thenecho"$1的值大于5"elseecho"$1的值小于5"fi
如果使用[[ ]] 的话则可以去掉转义字符
if[[ $1> 5 ]]
thenecho"$1的值大于5"elseecho"$1的值小于5"fi
	• 支持&&和||,但是仅仅支持==和!=的连接判断
也可以使用&&或者||,但是只支持==或者!=的连接
if[[ $a != 3 && $a != 10 ]]thenecho "hello i am linux"fi
如下的使用方法是错误的,因为&&不支持>的链接判断,只支持==和!=的连接判断
错误案例:
if[[ $a > 3 && $a != 10 ]]thenecho "hello i am linux"fi
如果不使用[[ ]]的话则需要这样写:
if[[ $a != 3 -a $a != 10 ]]thenecho "hello i am linux"fi
或者
if[[ $a != 3 ]&&[ $a != 10 ]]thenecho "hello i am linux"fi
	• [[ ]]在比较字符串支持正则匹配和通配符匹配
在[[ ]]中进行 == 或者 != 比较时可以进行通配符匹配
案例1:
if[[ linux == l?nu? ]]thenecho "i am linux"elseecho "i am not linux"fi
案例2:
if[[ linux == li* ]]thenecho "i am linux"elseecho "i am not linux"fi
在[[ ]]中可以使用 =~ 进行正则匹配
案例1:
if[[ linux =~ ^li ]]thenecho "i am linux"elseecho "i am not linux"fi
案例2:
if[[ linux =~ ^li[abn]ux ]]thenecho "i am linux"elseecho "i am not linux"fi

 

(( ))

(( ))的主要用法大概有三个:

  • 与$结合使用进行数学运算$(( ))
  • 在for循环命令中控制循环,类似于c语言
  • 改变变量的值,且不需要$引用

for((i=1;i<10;i++))
doecho"this is $i"done

i=0
while[ $i-le 10 ]
doecho"this is $i"((i++))
done或者

i=0
while[ $i-le 10 ]
doecho"this is $i"((i=i+1))
done

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值