shell取值与引用
通常我们有如下取值方法:
1. $var
2. ${var}
3. "$var"
那么这三个是什么区别的? 如果var="a b c",你分别对它进行以上三种方式的echo就知道了,1和2会把其中的空格去掉。
原因在于1和2中都先进行了取值运算,得出结果a b c,然后把它传给了echo;
而3中""是一种引用。引用指将字符串用引用符号引起来,以防止特殊字符被shell脚本重解释为其他意义。
传入给echo的却是一个字符串“a b c”,使用引用的方法让它里面的特殊字符“空格”不要被解释为其他的乱七八糟的东西。
1 #!/bin/bash
2
3 function hello(){
4 echo $1
5 echo $2
6 echo $3
7 echo $4
8 }
9
10 aaa="a b c ,d"
11
12 hello $aaa
13 echo "hello"
14 echo world
15 hello "$aaa"
输出:
root@cvknode21:~# ./a.sh
a
b
c
,d
hello
world
a b c ,d
所以我们优先使用引用? 这样更安全?

浙公网安备 33010602011771号