文章目录
1. 单引号(‘’)
1.1 单引号的基本用法
特点:内容原样输出,单引号内的所有字符都会被当作普通字符处理,不进行任何替换
用途:创建一个完全不进行变量替换和命令替换的字符串
var="NieKeYi"
echo 'The value of var is $var' # The value of var is$var
1.2 使用单引号的注意事项
单引号内不能包含单引号本身
2. 双引号(“”)
2.1 双引号的基本用法
特点:
- 双引号内的变量(如
$VAR
)会被替换为变量的值 - 双引号内的反斜杠(\)用于转义特殊字符(如
\$
,\!
等)
用途:创建一个进行变量替换、命令替换和转义字符处理的字符串
var="NieKeYi"
echo "The value of var is $var" # 输出:The value of var is NieKeYi
2.2 使用花括号 {} 包裹变量名,提高指令的可读性
可以使用花括号 {}
包裹变量名,提高指令的可读性
var="NieKeYi"
echo "The value of var is ${var}" # 输出:The value of var is NieKeYi
2.3 在双引号内转义特殊字符
如果不希望特殊字符在双引号内部被正常解释,可以在特殊字符前加上反斜杠 \
,使其变成普通字符
echo "My home directory is ${HOME}" # 输出:My home directory is /home/username
echo "My home directory is \${HOME}" # 输出:My home directory is ${HOME}
2.4 使用双引号的注意事项
如果需要在字符串中包含双引号,需要使用反斜杠转义
echo "He said, \"Hi\"" # He said, "Hi"
3. 反引号(``)
3.1 反引号的基本用法
特点:反引号内的命令会先执行,然后将命令的执行结果替换到反引号的位置
用途:在原命令中执行另一个命令,并将命令的输出结果作为原命令的参数
查看当前日期
current_date=`date "+%Y-%m-%d"`
echo "Today is ${current_date}" # 输出:Today is [当前日期]
3.2 反引号在现代Bash脚本中的写法
在现代的 bash 脚本中,更推荐使用 $() 代替反引号进行命令替换,因为 $() 支持嵌套且更具可读性
current_date=$(date "+%Y-%m-%d")
echo "Today is ${current_date}" # 输出:Today is [当前日期]
4. 扩展:感叹号在Bash脚本中的作用
如果运行以下指令,会输出什么呢
echo "My id is !325."
我们执行命令,发现报错了,这么简单的一句指令为什么会报错呢
原来,在 Bash 脚本中,当在双引号中使用感叹号时,Bash 会尝试将其解释为对历史命令的引用
我们输入 history 指令查看历史命令
发现历史指令中没有编号为 325
的命令,所以 Bash 就报错了,因为它找不到相应的事件
我们将 325 改成 320,发现命令成功执行了,!320 也被替换成了第 320 条历史指令——ls
因此,在设置密码时,最好不要使用 ! $ *
等在 Bash 脚本中有特殊含义的特殊字符(其它特殊字符还是可以使用的),避免在通过指令启动项目时出现不必要的错误