我在学习shell编程的时候,被各种括号的使用搞糊涂了。通过逐渐熟悉和积累,终于掌握了所有括号的用法。现在,分享一下你的总结。
注意:阅读本文的前提是你已经具备bash和shell编程的基础。
单括号()
但是圆括号有两个常见的功能:命令替换和数组初始化
命令替换
当遇到$()结构时,shell执行括号中的内部命令并返回结果
# tmp = $(日期)# echo $ tmpfrisep 18 10:22:30 CST 2020初始化阵列
#初始化数组lnmp=(linux nginx mysql php)双括号(())
记住双括号有一个特点,就是括号要符合C语言的语法,使用变量名不需要加$符号。
双括号的用途很多,可以用于整数计算(不支持小数)。例如:$((3+2))
# echo $((1+3))4 # n1 = 3 # echo $((n1+7))10只要符合C语言语法的操作扩展就可以写在括号里
# echo $((3+4 & gt;5?1:0))1 # echo $((3+4 & gt;9?1 :0)) 0重新给变量赋值。此时,您不能在括号中添加$符号
# I = 1;((i++));echo $ I;2 # I = 1;((I = 100));echo $ I;100双括号也常用于for循环
for((I = 0;i<。5;i++);do echo-n $ I;完成单方括号[]
单方括号最常用于逻辑判断。此外,它还可以用作数组的下标和正则化中的一个范围
用于shell脚本中的条件判断:
if [ 1 >;[2]然后...fi也可以用作数组下标:
# echo ${lnmp[1]}nginx用于正则化以指示范围
[0-9]表示数字0-9都有方括号。
与单括号一样,双括号也用于条件判断,但比单括号更一般。这里有一个例子:
[a & gt;b]& amp;& amp[a & gt;0]或[a >: b -a a >0]到双括号[[a >:b & amp;& ampa >。0 ]]单个大括号{}
花括号的扩展。(globbing)将在大括号中展开文件名。除非被引用或转义,否则大括号中不允许有空格。
例如,输入命令rm -f {1,2}。txt将删除1.txt和2.txt文件。
的功能...在单个花括号中
这里两点表示一个范围。诸如
回声{1...10} #将打印1,2,3,4,5,6,7,8,9,10花括号,这些花括号也常用于代码块的shell脚本中。
除了第一次,单花括号还可以用来替换和删除变量内容,测试变量内容,给出一个常见的例子。我们经常判断一个变量是否存在,如果不存在,就给这个变量设置一个新的值。
Val=${n1:-test}以上代码表示,如果变量n1不存在或为空,则Val变量的值将被设置为test,否则,val值将是n1变量的值。以上是全面整理linux下shell中各种括号的功能和用法的详细内容,还有更多