您的位置:首页 > 其它

变量相关命令(env,export,set,read, array, declare)

2011-04-18 08:49 441 查看
http://blogold.chinaunix.net/u3/93184/showart_1868073.html

查询变量:env,export,set

env 是 environment (环境) 的简写,列出来所有的环境变量。

export 执行后跟env是一样的内容。不过,export 还能将变量转变成环境变量。想要让该变量内容继续的在子程序中使用,那么就请执行:

export 变量

这个东西用在『引用他人的档案或者其它程序』时,相当的重要的。基本上,环境变量可以让子程序继续引用的原因,是因为:

1. 当启动一个 shell ,操作系统分配一记忆区块给 shell 使用,此区域之变量可以让子程序存取;

2. 利用 export 功能,可以让变量的内容写到上述的记忆区块当中(环境变量);

当加载另一个 shell 时 (亦即启动子程序,而离开原本的父程序了),子 shell 3. 可以将父 shell 的环境变量所在的记忆区块导入自己的环境变量区块当中。

set 这个指令除了会将环境变量列出来之外,其它我们的自订变量,都会被列出来。因此,想要观察目前 shell 环境下的所有变量,就用 set 即可!

变量键盘读取、数组与宣告: read, array, declare

read

要读取来自键盘输入的变量,就是用 read 这个指令了。这个指令最常被用在 shell script 的撰写当中, 以跟使用者进行对谈。

read [-pt] variable

参数:

-p :后面可以接提示字符!

-t :后面可以接等待的『秒数!』这个比较有趣~不会一直等待使用者啦!

范例一:提示使用者 30 秒内输入自己的大名,将该输入字符串做成 named 变量

[root@linux ~]# read -p "Please keyin your name: " -t 30 named

Please keyin your name: laoi

declare / typeset

declare 或 typeset 是一样的功能,就是在宣告变量的属性。如果使用 declare 后面并没有接任何参数, 那么 bash 就会主动的将所有的变量名称与内容通通叫出来,就好像使用 set 一样啦! 那么 declare 还有什么语法呢?看看先:

[root@linux ~]# declare [-aixr] variable

参数:

-a :将后面的 variable 定义成为数组 (array)

-i :将后面接的 variable 定义成为整数数字 (integer)

-x :用法与 export 一样,就是将后面的 variable 变成环境变量;

-r :将一个 variable 的变量设定成为 readonly ,该变量不可被更改内容,也不能 unset

范例:

范例一:让变量 sum 进行 100+300+50 的加总结果

[root@linux ~]# sum=100+300+50

[root@linux ~]# echo $sum

100+300+50 <==咦!怎么没有帮我计算加总?因为这是文字型态的变量属性啊!

[root@linux ~]# declare -i sum=100+300+50

[root@linux ~]# echo $sum

450

范例二:将 sum 变成环境变量

[root@linux ~]# declare -x sum

范例三:让 sum 变成只读属性,不可更动!

[root@linux ~]# declare -r sum

[root@linux ~]# sum=tesgting

-bash: sum: readonly variable
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: