shell 变量赋值和替换
日期: 2012-07-05 分类: 个人收藏 294次阅读
1 #!/bin/bash 2 3 # 变量赋值和替换 4 5 a=375 6 hello=$a 7 8 #------------------------------------------------------------------------- 9 # 强烈注意, 在赋值的的时候, 等号前后一定不要有空格. 10 # 如果出现空格会怎么样? 11 12 # "VARIABLE =value" 13 # ^ 14 #% 脚本将尝试运行一个"VARIABLE"的命令, 带着一个"=value"参数. 15 16 # "VARIABLE= value" 17 # ^ 18 #% 脚本将尝试运行一个"value"的命令, 19 #+ 并且带着一个被赋值成""的环境变量"VARIABLE". 20 #------------------------------------------------------------------------- 21 22 23 echo hello # 没有变量引用, 只是个hello字符串. 24 25 echo $hello 26 echo ${hello} # 同上. 27 28 echo "$hello" 29 echo "${hello}" 30 31 echo 32 33 hello="A B C D" 34 echo $hello # A B C D 35 echo "$hello" # A B C D 36 # 就象你看到的echo $hello 和 echo "$hello" 将给出不同的结果. 37 # =============================================================== 38 # 引用一个变量将保留其中的空白, 当然, 如果是变量替换就不会保留了. 39 # =============================================================== 40 41 echo 42 echo '$hello' # hello 43 echo '$hello' # $hello 44 # ^ ^ 45 # 全引用的作用将会导致"$"被解释为单独的字符, 46 #+ 而不是变量前缀. 47 48 # 注意这两种引用所产生的不同的效果. 49 50 51 hello= # 设置为空值. 52 echo "\$hello (null value) = $hello" 53 # 注意设置一个变量为null, 与unset这个变量, 并不是一回事 54 #+ 虽然最终的结果相同(具体见下边). 55 56 # -------------------------------------------------------------- 57 58 # 可以在同一行上设置多个变量, 59 #+ 但是必须以空白进行分隔. 60 # 慎用, 这么做会降低可读性, 并且不可移植. 61 62 var1=21 var2=22 var3=$V3 63 echo 64 echo "var1=$var1 var2=$var2 var3=$var3" 65 66 # 在老版本的"sh"上可能会引起问题. 67 68 # -------------------------------------------------------------- 69 70 echo; echo 71 72 numbers="one two three" 73 # ^ ^ 74 other_numbers="1 2 3" 75 # ^ ^ 76 # 如果在变量中存在空白, If there is whitespace embedded within a variable, 77 #+ 那么就必须加上引用. 78 # other_numbers=1 2 3 # 给出一个错误消息. 79 echo "numbers = $numbers" 80 echo "other_numbers = $other_numbers" # other_numbers = 1 2 3 81 # 不过也可以采用将空白转义的方法. 82 mixed_bag=2\ ---\ Whatever 83 # ^ ^ 在转义符后边的空格(\). 84 85 echo "$mixed_bag" # 2 --- Whatever 86 87 echo; echo 88 89 echo "uninitialized_variable = $uninitialized_variable" 90 # Uninitialized变量为null(就是没有值). 91 uninitialized_variable= # 声明, 但是没有初始化这个变量, 92 #+ 其实和前边设置为空值的作用是一样的. 93 echo "uninitialized_variable = $uninitialized_variable" 94 # 还是一个空值. 95 96 uninitialized_variable=23 # 赋值. 97 unset uninitialized_variable # Unset这个变量. 98 echo "uninitialized_variable = $uninitialized_variable" 99 # 还是一个空值. 100 echo 101 102 exit 0
除特别声明,本站所有文章均为原创,如需转载请以超级链接形式注明出处:SmartCat's Blog
标签:linux
精华推荐