全面整理linux下shell中各种括号的作用及用法


本文摘自PHP中文网,作者齐天大圣,侵删。

当初自己在学习shell编程的时候,被各种括号的用法搞得头昏脑涨。靠着逐步的熟悉和积累,才终于掌握的所有的括号的用法。现在,把自己总结出来的分享给大家。

注:看本篇文档的前提是你已经有了bash以及shell编程的基础。

单小括号()

但小括号常见的两个作用:命令替换以及数组的初始化

命令替换

当碰到$()结构时,shell就把括号的内命令执行,并返回结果

1

2

3

# tmp=$(date)

# echo $tmp

Fri Sep 18 10:22:30 CST 2020

初始化数组

1

2

# 初始化数组

lnmp=(linux nginx mysql php)

双小括号(())

记住双括号有一个特点,就是括号内的要符合c语言的语法,使用变量名时不需要加上$符号的。

双小括号的用法比较多,它可以用作整数计算(不支持小数)。例如:$((3+2))

1

2

3

4

5

# echo $((1+3))

4

# n1=3

# echo $((n1+7))

10

只要符合c语言语法的运算扩展,都可以写在括号里

1

2

3

4

# echo $((3+4>5 ? 1 :0))

1

# echo $((3+4>9 ? 1 :0))

0

重新给变量赋值,这个时候不可在括号外加$符

1

2

3

4

# i=1;((i++));echo $i;

2

# i=1;((i=100));echo $i;

100

双括号还经常用在for循环中

1

for ((i=0;i<5;i++));do echo -n $i;done

单方括号[]

单方括号最常见用于逻辑判断中,另外它还可以作为数组的下标,以及在正则中表示一段范围

shell脚本中用于条件判断:

1

2

3

if [ 1 > 2 ] then

    ……

fi

也可以作为数组下标:

1

2

# echo ${lnmp[1]}

nginx

在正则中使用,表示一段范围

1

[0-9]  表示数子0-9都行

双方括号

和单括号一样,双方括号也用在条件判断中,但它比单方括号更加的通用。下面举一个例子:

1

2

3

[ a > b ] && [ a > 0 ]或[ a > b -a a > 0 ]

改成双括号

[[ a > b && a > 0 ]]

单花括号{}

花括号拓展。(通配(globbing))将对花括号中的文件名做扩展。在大括号中,不允许有空白,除非这个空白被引用或转义。

比如输入命令 rm -f {1,2}.txt将删除1.txt和2.txt文件。

单花括号中..的作用

两个点在这里表示一段范围的意思。比如

1

echo {1..10}  #将打印1,2,3,4,5,6,7,8,9,10

花括号还常用在shell脚本里,用于代码块。

初次之外,单花括号还可以用作变量内容的替换和删除以及变量内容的测试,给出一个常见的例子。我们常常会判断一个变量是否存在,如果不存在,则给该变量设置新值。

1

val=${n1:-test}

上面代码表示如果n1这个变量不存在或为空,则将val变量值设置为test,否则val值为n1变量的值

以上就是全面整理linux下shell中各种括号的作用及用法的详细内容,更多文章请关注木庄网络博客

相关阅读 >>

Linux中怎么查看服务状态

Linux修改hosts文件不起作用怎么办

Linux系统可以用来做什么

Linux调试工具gdb使用教程

如何选择适合业务的 ecs 实例

Linux查看日志出现中文乱码

Linux系统如何打开rar格式的压缩文件

Linux如何查看端口状态

Linux如何查看某个软件是否安装

Linux查看软件是否安装

更多相关阅读请进入《Linux》频道 >>



打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...