shell的变量
概要:shell中,变量有环境变量和自定义变量之分,环境 变量相当于全局变量,自定义变量相当于局部变量,因此父程序的环境变量变量会被子程序所引用,而自定义变量则不可以。其中的原因在于子程序仅会继承父程序的环境变量, 子程序不会继承父程序的自定义变量。
[*]为什么环境变量的数据可以被子程序所引用呢?这是因为内存配置的关系!理论上是这样的:
[*]
[*]当启动一个 shell,操作系统会分配一记忆区块给 shell 使用,此内存内之变量可让子程序取用
[*]若在父程序利用 export 功能,可以让自定义变量的内容写到上述的记忆区块当中(环境变量);
[*]当加载另一个 shell 时 (亦即启动子程序,而离开原本的父程序了),子 shell 可以将父 shell 的环境变量所在的记忆区块导入自己的环境变量区块当中。
[*]本文目录索引:
[*]1、变量的显示
[*] echo --显示变量内容
[*] unset --取消变量
[*] env --观察环境变量
[*] set --观察环境变量与自定义变量
[*] export --自定义变量转成环境变量
[*] declare / typeset --宣告变量的类型(也可以将环境变量转成自定义变量)
[*]2、变量的读取
[*] read --读取来自键盘输入的变量
[*]3、通配符与特殊符号
[*]4、变量的配置守则
[*]5、变量内容的删除、取代与测试、替换
[*] 变量内容的删除与取代 (删除 取代)
[*] 变量的测试与内容替换
变量的显示
echo --显示变量内容
[*]格式:echo $variable
[*] echo ${variable}
[*] echo $PATH
[*]/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin
[*]# echo ${PATH}
[*]/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin
unset --取消变量
[*]格式:unset 变量名称
[*]取消 myname 的配置:
[*]#unset myname
env --观察环境变量
[*]范例一:列出目前的 shell 环境下的所有环境变量与其内容。
[*]# env
[*]HOSTNAME=www.vbird.tsai
页:
[1]