linuxshell命令之转义字符转义
& 传递到脚本的参数数量
* 0个或才多个在字符之前的那个普通字符
+ 匹配⼀个或者多个在其之前的那个普通字符
^ 匹配⾏⾸,或者后⾯字符的⾮
$ 命令的退出状态,0表⽰没有错误,⾮0表⽰有错误
` 反引号, shell的引⽤符号
" 双引号, shell的引⽤符号
| 管道符号或者表⽰"或"的意义
?匹配0个或者1个在其之前的那个普通字符
\ 转义符
echo "This is \" The 60th National Day\""
This is " The 60th National Day"
cat weirdvars.sh
#!/bin/bash
variable="()\\{}\$\""
echo $variable
echo "$variable"
IFS='\' #将分隔符改为转义符
echo $variable
echo "$variable"
exit 0
.
/weirdvars.sh
()\{}$"
()\{}$"
() {}$"
()\{}$"
第三个,将shell域的分隔符改为转义符,echo $variable得到的结果
变化:(){}$, \符号变成空格,这是因为shell分隔符将$variable解析为
两个域:()和{}$,中间⽤空格分隔。
第四个,由于双引号具⽤防⽌变量分隔的作⽤,因此输出结果仍为()\{}$"
cat escape.sh
#!/bin/bash
#echo 不加e选项,按照字⾯含义解释\t等特殊符号
linux shell编程求和
echo "\t\n\a\v"
#echo 加上e选项后,按照转义进⾏解析
echo -e "\t\t\thello"
echo -e "hello\v\v\fhello" #换⾏,但光标仍停在原来的位置
echo -e "\a\a\a\a" #发出警报声
echo -e "\042" #ASCII码
执⾏: ./escape.sh
\t\n\a\v
hello
hello
hello
"
如果使⽤了$符号,就⽆须再使⽤-e选项
daheng@ubuntu:~/test_program$ echo $'\t\thello'
hello
daheng@ubuntu:~/test_program$ echo $'hello\b\101'
hellA
echo的选项有两个:-e和-n
-e选项表⽰将转义符后的字符解析为特殊字符-n选项表⽰转义符后输出⽂字不换⾏

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