第六课时 变量
第二部分 Shell编程
7.1 定义变量
格式:name=value #注意:等号两边不能有空格!
这里与其他脚本语言不同的地方是:value不需要加引号就可以定义为变量值,但是在变量值为字符串且
存在空格时,则必须使用引号将value括起来。例如:name="this is value"
7.1.2 访问值
访问方法:$name,在变量名前加上"$"符号
7.1.3 数组变量
创建数组变量的最简单方法是为每一个元素赋值,例如:
name[index]=value
这里name为数组名,index为数组下标,value为该元素的值。
name[0]=apple
name[1]=banana
name[2]=orange
另一种定义方法是:
name=(value1 value2 value3)
7.1.4 访问数组值
${name[index]}访问指定下标的元素
${name[*]}访问数组中所有元素
7.1.5 只读变量
$ FRUIT=kiwi
$ readonly FRUIT
$ echo $FRUIT
输出:kiwi
$ FRUIT="other value"
错误:FRUIT:This variable is read only
7.2 删除变量
unset name
但不能删除使用readonly变量
7.3 常用SHELL变量
PWD 指出当前由cd命令设置的工作目录
UID 由Shell启动时初始化、扩充为当前用户的数字用户ID
PATH 指出命令的搜索路径。
HOME 当前用户的起始目录:cd内置命令的缺省参数
7.6 术语
标量:标量一次只能存放一个值。
数组变量:是一种可用于bash、ksh中为标量进行分组的机制。
局部变量:指在当前shell实例中存在的变量。它不能用于该shell启动的其他程序。
环境变量:是一个可用于任何一个shell所启动程序的变量。
shell变量:shell变量是由shell设置的一个特殊变量。shell为正确实现功能要求使用该变量。
第七课时 替换
8.1 变量替换。
${parameter:-word} 当parameter为空或未设置,则用word代替parameter进行替换,
parameter的值不变
${parameter:=word} 当parameter为空或未设置,则parameter设为word
${parameter:?message} 当parameter为空或未设置,则message作为标准错误打印出来,这
可用来检查变量是否正确设置
${parameter:+word} 当parameteter设置了,则用word代替parameter进行替换,
parameter值不变
8.3 命令和算术替换
8.3.1 命令替换
通过命令替换机制,shell可执行一个给定的命令集合,然后在命令的位置替换它们的输出。
替换格式:
newCommandName=`command`
例如:
DATA=`date`
USERS=`who | wc -l`
UP=`data;uptime`
当使用$ echo $DATA时,将会执行date命令,输出当前日期.
8.3.2 算术替换
在ksh,bash中,shell可执行整数算术运算,这就避免了在shell脚本中运行额外的如expr或bc这样的程
序做算术
运行。