\ 反斜杠(本义)
紧跟着的 \
的字符字面量会被保留,输入的时候去掉 \
。
一个特例是 \newline
(反斜杠 + 换行符),这个组合会被当做长字符串换行,输入的时候将 \newline
(反斜杠 + 换行符) 移除、疏忽。
$ echo \a
a
$ echo \aaa
aaa
$ echo aaa\
> ssss
aaassss
” 单引号
无奈应用本义
$ echo 'aaa'
aaa
“” 双引号
根本作用:保留字面量
特例:
-
‘$’:
# $name 援用变量名 $ test=asdfg $ echo "$test" asdfg $ echo "11${test}22" 11asdfg22 # $(command) 执行命令,将后果扩大为字符串 $ echo "aaaa$(ls)ssss" aaaa1.txt 2.txtssss # $((expression)) 执行算术表达式,将后果扩大为字符串 $ echo "aaaa$((3+4))ssss" aaaa7ssss
-
‘`’:
# `command` 执行命令,将后果扩大为字符串 $ echo "aaaa`ls`ssss" aaaa1.txt 2.txtssss
-
‘\’:
# 反斜杠 + 一般字符 $ echo "\a" \a # '$', '`', '"','\', or'newline'(换行) # 反斜杠 + 以上几个特殊符号,输入的时候反斜杠会被删除;其中,`newline` 也会被删除 $ echo "\$\`\"==\ > =="$`"==== # 不论开启或者敞开历史扩大的性能,` 反斜杠 +!` 的输入都同 ` 反斜杠 + 一般字符 ` 一样 $ echo "\!-1" \!-1
-
history expansion 开启时,’!’:
# 如果开启了历史扩大的性能 $ echo "!-1" // 打印上一条历史命令 echo "echo"\a"" echo a
$’string’
字符串中,以反斜杠结尾的字符,如果合乎 ANSI C 规范的转义字符,会被本义后扩大字符串。
$ echo $'a\naa'
a
aa
$”string”
会基于以后语言环境对 string 进行翻译。略。
参考
- Bash Reference Manual:https://www.gnu.org/software/…