------------ = 赋值操作符(前后都不能有空白) 不要与-eq混淆,那个是test,并不是赋值. 注意,=也可被用来做test操作,这依赖于上下文.
Example 4-2. 一般的变量赋值 ################################Start Script####################################### 1 #!/bin/bash 2 # "裸体"变量 3 4 echo 5 6 # 变量什么时候是"裸体"的,比如前边少了$的时候. 7 # 当它被赋值的时候,而不是被引用的时候. 8 9 # 赋值 10 a=879 11 echo "The value of \"a\" is $a." 12 13 # 使用let赋值 14 let a=16+5 15 echo "The value of \"a\" is now $a." 16 17 echo 18 19 # 在for循环中 20 echo -n "Values of \"a\" in the loop are: " 21 for a in 7 8 9 11 22 do 23 echo -n "$a " 24 done 25 26 echo 27 echo 28 29 # 在read命令状态中 30 echo -n "Enter \"a\" " 31 read a 32 echo "The value of \"a\" is now $a." 33 34 echo 35 36 exit 0 ################################End Script#########################################
Example 4-3. 变量赋值,一般的和比较特殊的 ################################Start Script####################################### 1 #!/bin/bash 2 3 a=23 # Simple case 4 echo $a 5 b=$a 6 echo $b 7 8 # 现在让我们来点小变化 9 10 a=`echo Hello!` # 把echo命令的结果传给变量a 11 echo $a 12 # 注意,如果在命令扩展结构中使用一个(!)的话,在命令行中将不能工作 13 #+ 因为这触发了Bash的"历史机制". 14 # 但是,在校本里边使用的话,历史功能是被关闭的,所以就能够正常运行. 15 16 17 a=`ls -l` # 把ls -l的结果给a 18 echo $a # 别忘了,这么引用的话,ls的结果中的所有空白部分都没了(包括换行) 19 echo 20 echo "$a" # 这么引用就正常了,保留了空白 21 # (具体参阅章节"引用") 22 23 exit 0 ################################End Script######################################### 使用$(...)机制进行的变量赋值(除去使用``来赋值的另外一种新方法).事实上这两种方法都是 命令替换的一种形式. # 来自于/ect/rc.d/rc.local R=$(cat /ect/redhat-release) arch=$(uname -m) |