小说网 找小说 无限小说 烟雨红尘 幻想小说 酷文学 深夜书屋

Linux Shell编程(10)——引用变量

当要引用一个变量的值时,一般推荐使用双引号。使用双引号除了变量名前缀($)、后引符(`)和转义符(\)外,会使shell不再解释引号中其它所有的特殊字符。用双引号时$仍被当成特殊字符,允许引用一个被双引号引起的变量("$variable"), 那也是说$variable会被它的值所代替。


用双引号还能使句子不被分割开.一个参数用双引号引起来能使它被看做一个单元,这样即使参数里面包含有空白字符也不会被shell分割开了。
variable1="a variable containing five words"
COMMAND This is $variable1    # 用下面7个参数执行COMMAND命令:

COMMAND "This is $variable1"  # 用下面1个参数执行COMMAND命令:

variable2=""    # 空字符串。


COMMAND $variable2 $variable2 $variable2        # 没有带参数执行COMMAND 命令
COMMAND "$variable2" "$variable2" "$variable2"  # 用三个含空字符串的参数执行COMMAND命令
COMMAND "$variable2 $variable2 $variable2"      # 用一个包含两个空白符的参数执行COMMAND命令


在echo语句中,只有句子分割和保存空白符的时候,才需要把参数用双引号引起来。


单引号(' ')和双引号类似,但它不允许解释变量引用,因此,在单引号内的字符$的特殊意思无效了。在单引号内,除了字符',每个特殊字符都只是字面的意思。单引号(全局引用)比双引号(部分引用)更严格的处理引用部分。

由于在单引号里的转义字符(\)也只是被局限于字面上的意思,所以想在一双单引号里再加单引号是不行的。
echo "Why can't I write 's between single quotes"
echo
# The roundabout method.
echo 'Why can'\''t I write '"'"'s between single quotes'
#    |-------|  |----------|   |-----------------------|
# 三个单引号引起的字符串之间有一个转义的单引号和一个由双引号引起的单引号.



posted on 2014-09-30 07:28  牛栏山1  阅读(178)  评论(0编辑  收藏  举报

导航