原创不易,转载请注明出处,谢谢。
整理东西的时候发现原来写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一般不用这个)