------------------------ 不像其他程序语言一样,Bash并不对变量区分"类型".本质上,Bash变量都是字符串.但是依赖于上下文,Bash也允许比较操作和算术操作.决定这些的关键因素就是,变量中的值是否只有数字.
Example 4-4 整型还是string? ################################Start Script####################################### 1 #!/bin/bash 2 # int-or-string.sh: 整形还是string? 3 4 a=2334 # 整型 5 let "a += 1" 6 echo "a = $a " # a = 2335 7 echo # 还是整型 8 9 10 b=${a/23/BB} # 将23替换成BB 11 # 这将把b变量从整型变为string 12 echo "b = $b" # b = BB35 13 declare -i b # 即使使用declare命令也不会对此有任何帮助,9.4节有解释 14 echo "b = $b" # b = BB35 15 16 let "b += 1" # BB35 + 1 = 17 echo "b = $b" # b = 1 18 echo 19 20 c=BB34 21 echo "c = $c" # c = BB34 22 d=${c/BB/23} # S将BB替换成23 23 # 这使得$d变为一个整形 24 echo "d = $d" # d = 2334 25 let "d += 1" # 2334 + 1 = 26 echo "d = $d" # d = 2335 27 echo 28 29 # 关于空变量怎么样? 30 e="" 31 echo "e = $e" # e = 32 let "e += 1" # 算术操作允许一个空变量? 33 echo "e = $e" # e = 1 34 echo # 空变量将转换成一个整型变量 35 36 # 关于未声明的变量怎么样? 37 echo "f = $f" # f = 38 let "f += 1" # 算术操作允许么? 39 echo "f = $f" # f = 1 40 echo # 未声明的变量将转换成一个整型变量 41 42 43 44 # 所以说Bash中的变量都是无类型的. 45 46 exit 0 ################################End Script######################################### |