shell编程肯定避免不了变量的使用,shell中变量定义有如下规则:
1.变量名和变量内容以=连接(=两边不能有空格) myvar=hello
2.变量名必须是字母或者数字,数字不能是首字符
3.变量内容如果有空格,可以使用双引号或者单引号将变量内容括起来,注意区别:单引号内特殊字符仅为一般字符,双引号内特殊字符具有变量属性。
4.特殊字符前加转义字符“\”后变为一般字符
5.字符串指令中,包含其他命令时,其他命令以两个`(命令替换字符,物理键盘位置~符号位置)符号括起来。
6.如果变量要在其他子shell程序中运行,需要export声明变量。
7.unset 取消变量设置,echo输出变量内容
8.需要扩增变量内容的时候需要双引号和$变量名称
如下例:
kk@kk-ThinkPad-E420:~/Desktop$ myvar=hello
kk@kk-ThinkPad-E420:~/Desktop$ echo $myvar
hello
kk@kk-ThinkPad-E420:~/Desktop$ myvar='hello world'
kk@kk-ThinkPad-E420:~/Desktop$ echo $myvar
hello world
kk@kk-ThinkPad-E420:~/Desktop$ myvar="hello world"
kk@kk-ThinkPad-E420:~/Desktop$ echo $myvar
hello world
kk@kk-ThinkPad-E420:~/Desktop$ myvar=hello
kk@kk-ThinkPad-E420:~/Desktop$ myhw='$myvar world'
kk@kk-ThinkPad-E420:~/Desktop$ echo $myhw
$myvar world
kk@kk-ThinkPad-E420:~/Desktop$ myhw="$myvar world"
kk@kk-ThinkPad-E420:~/Desktop$ echo $myhw
hello world
kk@kk-ThinkPad-E420:/lib/modules/3.5.0-36-generic$ myvar=hello
kk@kk-ThinkPad-E420:/lib/modules/3.5.0-36-generic$ myvar="$myvar world"
kk@kk-ThinkPad-E420:/lib/modules/3.5.0-36-generic$ echo $myvar
hello world
kk@kk-ThinkPad-E420:/lib/modules/3.5.0-36-generic$
kk@kk-ThinkPad-E420:~/Desktop$ cd /lib/modules/`uname -r`
kk@kk-ThinkPad-E420:/lib/modules/3.5.0-36-generic$