bash脚本-转义符号

目标

  输出bash shell中的特殊符号

名词定义

  • 转移符号

  一些字符和词语对bash shell具有特殊含义。但是,偶尔您会希望使用这些字符的字面值,而非其特殊含义。为此,需要使用以下三种工具之一来取消特殊含义:

  • 反斜杠()
  • 单引号(‘’)
  • 双引号(“”)

  反斜杠转义字符可取消紧跟在该字符后面的单个字符的特殊含义。例如,要使用echo命令显示字面值字符串# not a commentBash不能将#符号解释为特殊含义。

[root@sinfotek tmp]# echo # sinfotek

[root@sinfotek tmp]# echo \# sintal
# sintal

  当需要转义文本字符串中的多个字符时,可以多次使用转义字符或者采用单引号(‘’).单引号保留其括起的所有字符的字面含义。请注意所用的转义字符和单引号:

[root@sinfotek tmp]# echo # sinfotek \#

[root@sinfotek tmp]# echo \# sinfotek #
# sinfotek
[root@sinfotek tmp]# echo # sinfotek #

[root@sinfotek tmp]# echo '# sinfotek #'
# sinfotek #

  使用双引号可以阻止通配和shell拓展,但依然允许命令和变量替换。变量替换在概念上与命令替换一样,但可能使用可选的大括号语法。

[root@sinfotek tmp]# echo '# sinfotek $(date)'
# sinfotek $(date)
[root@sinfotek tmp]# echo "# sinfotek $(date)"
# sinfotek 2022年 07月 15日 星期五 09:25:05 CST
文档更新时间: 2022-07-15 09:25   作者:xiubao yan