linux脚本中使用转义括号,Linux之shell中的大括号、中括号、小括号的使用详解+。。。

更新时间:2023-07-08 14:54:06 阅读: 评论:0

linux脚本中使⽤转义括号,Linux之shell中的⼤括号、中括号、
包繶
⼩括号的使⽤详解+。。。
摘要
很多⼈和我⼀样对于shell的各种括号的各种⽤法肯定不是很清楚,有时候看见别⼈脚本都不知道是什么意思,今天就来说说bash中的⼤中⼩括号的⽤法和解释,本⼈常⽤bash所以也只能⽤bash来说明了,若其他shell有出⼊请勿怪我。
⼀、shell中的⼤括号(也叫花括号) "{}"的⽤法:基督山伯爵读后感
1、${var}
[root@Legion100 ~]# var=lookback
[root@Legion100 ~]# echo "Legion$var"
Legionlookback
[root@Legion100 ~]# echo "$varLegion"
[root@Legion100 ~]# echo "${var}Legion"
lookbackLegion
[root@Legion100 ~]#
解释:当变量名和后⾯的内容都是变量命名所允许的内容时候这时候直接⽤$var是不⾏的得⽤{}把变量名括起来
2、${var:-string}
[root@Legion100 ~]# var=""
伋的拼音[root@Legion100 ~]# echo ${var:-a}
a
[root@Legion100 ~]# var=lookback
[root@Legion100 ~]# echo ${var:-a}
lookback
[root@Legion100 ~]#
解释:当变量var值为空时${var:-a}会吧a作为值,当变量var值不为空时,${var:-a}会吧var的值作为变量
3、${var:+string}
英语教学计划
[root@Legion100 ~]# var=""
[root@Legion100 ~]# echo ${var:+a}
[root@Legion100 ~]# var=lookback
[root@Legion100 ~]# echo ${var:+a}
a
[root@Legion100 ~]#
解释:${var:+a}的替换规则和上⾯的相反,即当变量var的值不为空的时将值换成a,当变量var为空时则不替换或者说是替换成变量var的值,即空值。(因为变量var此时为空,所以这两种说法我认为是⼀样的)
4、${var:=string}
[root@Legion100 ~]# var=""
[root@Legion100 ~]# echo ${var:=a}
a
[root@Legion100 ~]# echo ${var:=b}两个字的网名女生
a
[root@Legion100 ~]# echo $var
a
[root@Legion100 ~]# var=lookback
[root@Legion100 ~]# echo ${var:=a}
lookback
[root@Legion100 ~]# echo ${var:=b}
lookback
[root@Legion100 ~]# echo $var
[root@Legion100 ~]#
解释:当变量var值为空时,${var:=a}会将其赋值为a,且变量var也被赋值是a了,若变量var不为空时,${var:=string}的值都是变量var 的值。(很常⽤的⼀种⽤法是,判断某个变量是否赋值,没有的话则给它赋上⼀个默认值。)
5、${var:?string}
1 #!/bin/bash
2 >>>>>>>>>>>>>>###
3 # File Name: 123.sh
屏风的作用4 # Author: LookBack
5 # Email:
6 # Version:
1 #!/bin/bash
1 #!/bin/bash
1 #!/bin/bash
1 #!/bin/bash
2 >>>>>>>>>>>>>>###
3 # File Name: 123.sh
4 # Author: LookBack
5 # Email: admin#dwhd
6 # Version:
7 # Created Time: 2015年07⽉08⽇ 星期三 20时57分26秒
8 >>>>>>>>>>>>>>###
茂名第一滩
9
10 var=lookback
11 echo ${var:?Legion}
13 echo ${var:?Legion}
14 echo test
15
~/123.sh [FORMAT=unix] [TYPE=SH] [POS=15,1][100%] 15-07-08 - 21:03:06
"123.sh" 15L, 366C [w]
[root@Legion100 ~]# bash 123.sh
lookback
123.sh: line 13: var: Legion
[root@Legion100 ~]# echo $?
1
[root@Legion100 ~]#
解释:若变量var不为空,则⽤变量var的值来替换${var:?string};若变量var为空,则把string输出到标准错误中,并从脚本中退出。我们可利⽤此特性来检查是否设置了变量的值。
6、扩展
[root@Legion100 ~]# var=""
[root@Legion100 ~]# echo ${var:-a}
a
[root@Legion100 ~]# a=Legion
[root@Legion100 ~]# echo ${var:-$a}
Legion
[root@Legion100 ~]# echo ${var:-$(date +%F)}
2015-07-08
[root@Legion100 ~]#
岁月友情
说明:你们以为a这个位置只能常量?答案是否定的照样可以是其他变量名或者⼀个命令。
7、${var%pattern}
[root@Legion100 ~]# var=lookbacklookbacklookback
[root@Legion100 ~]# echo ${var%b*}
lookbacklookbacklook
[root@Legion100 ~]#
解释:${variable%pattern},这种模式时,shell在variable中查找,看它是否⼀给的模式pattern结尾,如果是,就从命令⾏把variable中的内容去掉右边最短的匹配模式
8、${var%%pattern}
[root@Legion100 ~]# var=lookbacklookbacklookback
[root@Legion100 ~]# echo ${var%%b*}
look
[root@Legion100 ~]#
解释:${variable%%pattern},这种模式时,shell在variable中查找,看它是否⼀给的模式pattern结尾,如果是,就从命令⾏把variable 中的内容去掉右边最长的匹配模式
9、${var#pattern}
[root@Legion100 ~]# var=lookbacklookbacklookback
[root@Legion100 ~]# echo ${var#*b}
acklookbacklookback
[root@Legion100 ~]#
解释:${variable#pattern} 这种模式时,shell在variable中查找,看它是否⼀给的模式pattern开始,如果是,就从命令⾏把variable中的内容去掉左边最短的匹配模式
10、${var##pattern}
[root@Legion100 ~]# var=lookbacklookbacklookback
[root@Legion100 ~]# echo ${var#*b}
acklookbacklookback
[root@Legion100 ~]# echo ${var##*b}
ack
[root@Legion100 ~]#
解释: ${variable##pattern} 这种模式时,shell在variable中查找,看它是否⼀给的模式pattern结尾,如果是,就从命令⾏把variable中的内容去掉右边最长的匹配模式

本文发布于:2023-07-08 14:54:06,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/fan/82/1085683.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:变量   是否   模式   脚本   内容
相关文章
留言与评论(共有 0 条评论)
   
验证码:
推荐文章
排行榜
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图