bash脚本-转义符号
目标
输出bash shell中的特殊符号
名词定义
- 转移符号
一些字符和词语对bash shell具有特殊含义。但是,偶尔您会希望使用这些字符的字面值,而非其特殊含义。为此,需要使用以下三种工具之一来取消特殊含义:
- 反斜杠()
- 单引号(‘’)
- 双引号(“”)
反斜杠转义字符可取消紧跟在该字符后面的单个字符的特殊含义。例如,要使用echo命令显示字面值字符串# not a comment。Bash不能将#符号解释为特殊含义。
[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