linux shell 转义字符

2017-12-25 Linux

整理一下 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 对应的命令是双引号,对于命令中的特殊字符就需要转义。

转义规则如下:

  • \ -> \\
  • $ -> \$
  • " -> \"
  • [ -> \[
  • ] -> \]

Search

    Post Directory