整理一下 Linux shell 中的常用转义字符.
shell 中的转义字符
单引号
由单引号括起来的字符都作为普通字符出现。
特殊字符用单引号括起来以后,也会失去原有意义,而只作为普通字符解释。
需注意单引号的嵌套使用需要进行转义单引号.
双引号
由双引号括起来的字符,除 $
, \
, '
, "
这几个字符仍是特殊字符并保留其特殊功能外, 其余字符仍作为普通字符对待.
另, ` ` ` 字符嵌套直接执行命令的方式不建议使用:
abc=`echo The number of users is \`who| wc -l\``
echo $abc
需注意, 反引号的用法易出错, 推荐使用 $()
的方式.
expect 中的转义字符
spawn send
例如如下脚本:
#!/usr/bin/expect -f
set timeout 30
spawn ssh username@ip -p 22
expect "password:"
send "~191~data&2\$07\n"
interact
其中的 send
对应的命令是双引号,对于命令中的特殊字符就需要转义。
转义规则如下:
\
->\\
$
->\$
"
->\"
[
->\[
]
->\]