初学 Shell 编程时,对变量各种引用使用不太熟悉,走了很多弯路,本文记录变量引用的一些用法,希望对大家有所帮助。
引用
引用指将字符串用引用符号引起来,以防止特殊字符被shell脚本解释为其他意义。shell中定义了 4 种引用符号。
实例脚本
可以使用sh -v testVar.sh命令来执行如下脚本,查看原始命令及输出内容。
1# 实例脚本
2$ cat testVar.sh
3#!/bin/bash
4# 变量引用示例
5
6var=daodaotest
7
8## 双引号
9# 正常赋值输出
10echo "Hello $var"
11# 正常赋值输出,${} 方式
12echo "Hello ${var}"
13# 不会有任何输出,shell 会去引用变量 var2 的值
14echo "$var2"
15# 正常输出,推荐使用 ${} 方式来引用变量
16echo "${var}2"
17
18
19## 反引号
20# 把 pwd 解释为系统命令,即:先执行 pwd,再 echo 打印
21echo `pwd`
22# 相等于 `pwd`
23echo $(pwd)
24# 同理
25echo `echo $var`
26
27## 单引号
28echo '单引号引用时,输出字面内容:$var'
29echo '单引号引用时,输出字面内容:${var}'
30
31## 转义符
32echo '使用单引号引用,不需要使用转义符号: $、`、"、\'
33echo "使用双引号引用,需要使用转义符号: \$、\`、\"、\\"
34echo "\$var"
35
36## 反引号嵌套单引号和双引号
37jobName=dev-daodaotest
38viewName=dev
39# 此处的变量 ${viewName} 其实是放在了两对单引号中间,起到拼接的作用
40name=`echo ${jobName}|awk 'BEGIN{FS="'${viewName}'-"} {print $2}'`
41echo ${name}
领取专属 10元无门槛券
私享最新 技术干货