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

所以我们优先使用引用? 这样更安全?

 

posted @ 2017-10-27 11:43  你的KPI完成了吗  阅读(526)  评论(0)    收藏  举报