不同与许多其他的编程语言,Bash不以"类型"来区分变量。本质上来说,Bash变量是字符串,但是根据环境的不同,Bash允许变量有整数计算和比较。其中的决定因素是变量的值是不是只含有数字.例1、整数还是字符串? 1#!/bin/bash 2#int-or-string.sh:Integerorstring? 3 4a=2334 #整数. 5let"a+=1" 6echo"a=$a" #a=2335 7echo #仍然是整数. 8 9 10b=${a/23/BB} #把变量a中的"23"替换为"BB"并赋给变量b 11 #这使变量$b成为字符串 12echo"b=$b" #b=BB35 13declare-ib #即使明确地声明它是整数也没有用 14echo"b=$b" #b=BB35 15 16let"b+=1" #BB35+1= 17echo"b=$b" #b=1 18echo 19 20c=BB34 21echo"c=$c" #c=BB34 22d=${c/BB/23} #把"BB"替换成"23" 23 #这使变量$d成为一个整数 24echo"d=$d" #d=2334 25let"d+=1" #2334+1= 26echo"d=$d" #d=2335 27echo 28 29#Whataboutnullvariables? 30e="" 31echo"e=$e" #e= 32let"e+=1" #数值计算允许有null值操作? 33echo"e=$e" #e=1 34echo #空值(null)变量变成了整数 35 36#如果没有声明变量会怎么样? 37echo"f=$f" #f= 38let"f+=1" #算术计算能通过吗? 39echo"f=$f" #f=1 40echo #没有预先声明的变量变为整数 41 42 43 44#在Bash中的变量确实是无类型的. 45 46exit0 变量没有类型既是幸运的也是悲惨的。它使脚本编程时有更多的弹性(但也可能把你弄晕)并能很容易地写出代码。但是,这也很容易不小心犯错误和养成坏的编程习惯。程序员的负担就是要清楚地知道脚本中变量的类型。Bash不会帮你检查。
上一篇:批处理基本知识_程序数据_windows批处理
下一篇:检测你对测试命令掌握_程序数据_shell