2010-06-01
时间:2010-06-01 来源:qingchn
4.2 变量赋值
变量赋值的两个方法
4.2.1 = 赋值操作符(前后不能有空白)
4.2.2 是用let赋值
如
let a=16+5
echo $a
使用$(...)机制进行的变量赋值(除去使用``来赋值的另外一种新方法).事实上这两种方法都是
命令替换的一种形式.
# 来自于/ect/rc.d/rc.local
R=$(cat /ect/redhat-release)
arch=$(uname -m)
4.3Bash 变量是不分类型的
不想其他语言。bash并不对变量区分类型,本质上,Bash变量都是字符串。Bash也可以比较操作,决定这 些关键因素就是,变量中的值是不是只有数字。
4.4特殊的变量类型
local variables
这种变量只有在代码块或者是函数中才可见(具体见23.2 和23 章)
environmental variables
这种变量将改变用户接口和 shell 的行为.
在一般的上下文中,每个进程都有自己的环境,就是一组保持进程可能引用的信息的
变量.这种情况下,shell 于一个一般进程是相同的.
每次当 shell 启动时,它都将创建自己的环境变量.更新或者添加新的环境变量,将导
致 shell 更新它的环境,同时也会影响所有继承自这个环境的所有子进程(由这个命令
导致的).
注意:分配给环境变量的空间是受限的.创建太多的环境变量将引起空间溢出,这会引
起问题.
关于 eval 命令,具体见第11 章
bash$ eval "`seq 10000 | sed -e 's/.*/export var&=ZZZZZZZZZZZZZZ/'`"
bash$ du
bash: /usr/bin/du: Argument list too long
如果一个脚本设置了环境变量,需要export 它,来通知本脚本的环境,这是export
命令的功能,关于export 命令,具体见11 章.
脚本只能对它产生的子进程 export 变量.一个从命令行被调用的脚本export 的变量,将
不能影响调用这个脚本的那个命令行 shell 的环境.
positional parameters
就是从命令行中传进来的参数,$0, $1, $2, $3...
$0就是脚本文件的名字,$1 是第一个参数,$2 为第2 个...,参见[1](有$0 的说明),$9
以后就需要打括号了,如${10},${11},${12}...
两个值得注意的变量$*和$@(第9 章有具体的描述),表示所有的位置参数.
变量赋值的两个方法
4.2.1 = 赋值操作符(前后不能有空白)
4.2.2 是用let赋值
如
let a=16+5
echo $a
使用$(...)机制进行的变量赋值(除去使用``来赋值的另外一种新方法).事实上这两种方法都是
命令替换的一种形式.
# 来自于/ect/rc.d/rc.local
R=$(cat /ect/redhat-release)
arch=$(uname -m)
4.3Bash 变量是不分类型的
不想其他语言。bash并不对变量区分类型,本质上,Bash变量都是字符串。Bash也可以比较操作,决定这 些关键因素就是,变量中的值是不是只有数字。
4.4特殊的变量类型
local variables
这种变量只有在代码块或者是函数中才可见(具体见23.2 和23 章)
environmental variables
这种变量将改变用户接口和 shell 的行为.
在一般的上下文中,每个进程都有自己的环境,就是一组保持进程可能引用的信息的
变量.这种情况下,shell 于一个一般进程是相同的.
每次当 shell 启动时,它都将创建自己的环境变量.更新或者添加新的环境变量,将导
致 shell 更新它的环境,同时也会影响所有继承自这个环境的所有子进程(由这个命令
导致的).
注意:分配给环境变量的空间是受限的.创建太多的环境变量将引起空间溢出,这会引
起问题.
关于 eval 命令,具体见第11 章
bash$ eval "`seq 10000 | sed -e 's/.*/export var&=ZZZZZZZZZZZZZZ/'`"
bash$ du
bash: /usr/bin/du: Argument list too long
如果一个脚本设置了环境变量,需要export 它,来通知本脚本的环境,这是export
命令的功能,关于export 命令,具体见11 章.
脚本只能对它产生的子进程 export 变量.一个从命令行被调用的脚本export 的变量,将
不能影响调用这个脚本的那个命令行 shell 的环境.
positional parameters
就是从命令行中传进来的参数,$0, $1, $2, $3...
$0就是脚本文件的名字,$1 是第一个参数,$2 为第2 个...,参见[1](有$0 的说明),$9
以后就需要打括号了,如${10},${11},${12}...
两个值得注意的变量$*和$@(第9 章有具体的描述),表示所有的位置参数.
相关阅读 更多 +