Young87

当前位置:首页 >个人收藏

shell 变量赋值和替换

  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

上一篇: 【原创】Windows处理驱动Path流程

下一篇: javascript 用出生日期计算现在年龄的小代码

精华推荐