_winds 发表于 2018-8-20 07:03:02

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]
查看完整版本: shell的变量