您的位置:首页 > 运维架构 > Shell

Shell学习笔记(三)

2008-04-14 12:32 363 查看
第七学时 变量

变量定义的方法
name = value
变量名 = 该变量所保持的值
FRIUT = apple
echo $FRIUT   返回FRIUT值
变量 标量
数组提高尼古拉一种将变量集合分组的方法。
数组变量和比阿亮之间的不同可作如下解释:激射读者想将数的所有学时作为一个变量集合,分开的每一学时就是一个标量。

创建数组变量的最简单方式
name[index] = value
name 数组名 index 数组中程序员设置的下标 valude 为该项附的值
$ FRUIT_0 = apple
$ FRUIT_1 = banana
$ FRUIT_2 = orange
或是
$ FRUIT[0] = apple
$ FRUIT[1] = banana
$ FRUIT[2] = orange

$ FRUIT[10] = plum
数组FRUIT中下标为10的哪一项被复制为"plum",这里要注意的是Shell并不为下标2~10之间的遗传空白数组项用空格填满,Shell只是跟踪那些赋了值的数组元素。

若定义的数组变量与某个一定义的标量同名,则标量值为数组下标为0的那个元素的值。
如: $FRUIT = applle   == FRUIT[0] = apple
数组初始化的第二种凡是是一次设置多个原书,在ksh中,做法如下:
set -A name value1 value2...valuen
bash中是:
name =(value1...valuen)
$set -A band derri terry mike gene
$band =(derri terry mike gene)
等价于
$band[0] = derri
$band[1] = terry
$band[2] = mike
$band[3] = gene

bash中 当为多个数组原书赋值时,可以在值前面加上数组下标
myarray = ([0]=derri [3]=gene [2]=mike [1]=terry)

访问数组值
${name[index]}

$echo ${FRUIT[2]}  --> orange
可用以下方法访问所有数组中的所有项:
${name[*]}
${name[@]}

$echo ${FRIUT[*]}  --> apple banana orange

如果保留项中带有空格 如 passion fruit
则 FRIUT[3] = "passion fruit"

只读变量 通过使用readonly命令,Shell提供另一种将变量标记为只读的方式,当命令被标为制度时,他的值不可改变
$ FRUIT = kiwi
$ readonly FRUIT
echo $FRUIT
kiwi
$ FRUIT = cantaloupe 产生错误

删除变量
unset name    name是欲删除变量的名称,如  unset FRUIT  删除变量FRUIT  不能用unset命令删除被标识为只读的变量

环境变量
shell运行时,存在三种变量 局部变量 环境变量 Shell变量

局部变量 是只在当前Shell实例中存在的变量,而由其他Shell启动的程序不能使用该变量。
环境变量 是Shell的任何子进程都能使用变量,许多程序要正确运行都需要使用环境变量
Shell变量 是Shell设置的特殊变量,也是Shell正确运行所必须的,这些变量有些是环境变量而有些是局部变量

比较局部 环境 Shell变量

   属  性            局部变量   环境变量  Shell变量 

可被子进程访问  No    Yes      Yes

由用户设置              Yes        Yes      No

由Shell设置             No         No       Yes
 
用户可更改              Yes        Yes      No

Shell要求使用           No         No       Yes

导出环境变量
可以通过导出将变量放入环境中
export name     该命令用制定的名称name标识要导出的变量。这是sh可以支持的唯一格式,导出环境变量的标准语法为:
 name = value;export name

如 PATH = /sbin:/bin;export PATH          设置变量PATH的值并导出。为清除的表示该变量是环境变量,环境变量的赋值语句和导出语句写在同一行。

使用export 命令向环境导出多个变量
export PATH HOME UID

ksh和bash支持的第二种将变量导出的格式为
export name = value
name制定的变量赋值为value,然后将其导出  即 export PATH = /sbin:/bin

Shell变量
用户变量是用户可手工设置和重设的变量
shell变量  shell在初始化和使用过程中设置的变量 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  shell apple path bash