AI智能
改变未来

shell脚本各种括号、引号的使用心得

原创不易,转载请注明出处,谢谢。

整理东西的时候发现原来写shell脚本的时候记录的一些笔记,分享出来:

引号:

  • PS:以下所说的特殊字符不包括转义字符,若有转义字符生效选项,转译字符是在输出时被翻译的*

一:单引号

不论是在定义变量还是在使用变量的时候,当碰到第一个单引号开始就屏蔽任何特殊字符的含义,直至第二个单引号出现。

二:双引号

不论在定义还是使用变量的时候,双引号可以翻译特殊字符的内容

三:反引号

反引号中的内容被认为是一个系统命令

括号:

一:小括号:

1.(代码段)结构:			代表命令组,可用括号外定义的变量,但括号中的变量定义和赋值只能在括号中生效。2.$(cmd)结构:			代表命令替换,先将括号中命令执行一次,将其标准输出代替其在原语句中的值3.用于给数组赋值,格式为arrayname=(a b c d)4.算术运算中表示高优先级

二:双小括号:

PS:双小括号内多个表达式使用\",\"隔开,且变量前可不加$前缀使用1.((a=$b+1))结构:	用于给变量重新赋值2.((表达式))结构:①:为算术表达式:			若算术表达式结果为0,退出码则为1;结果不为0,退出码为0②:为逻辑判断表达式:			为真退出码为0,为假退出码为13.$((算术表达式))结构:				此处表达式包括三目运算,返回值为运算出的实际结果4.用于for循环判断语句中

三:中括号:

1.[ expression ]结构:			可用于代替test语句,相当于test expression2.arrayname[index]结构:		用于表示数组的元素编号3.[abc],[a-z]结构:				用于正则表达式匹配

四:大括号:

1.{a,b,c},{a...e}结构:			文件名扩展2.${a}bc结构:				表示变量的时候防止歧义3.用于字符串扩展(字符串替换,移除,求长度.改变大小写)4.表示函数代码块5.用于引用数组

五:双中括号:

不建议使用(当时用这个总是容易搞混,所以一直以来个人写shell一般不用这个)
赞(0) 打赏
未经允许不得转载:爱站程序员基地 » shell脚本各种括号、引号的使用心得