红联Linux门户
Linux帮助

环境变量和shell变量到底有什么区别呢?

发布时间:2007-06-02 15:40:04来源:红联作者:sunflov
最近在看系统管理方面的书,对于环境变量和shell变量的区别不理解,想请教高人给解释下,谢谢!
还有,环境变量一般保存在.profile里面,shell变量又保存在什么地方?导出shell变量到底是个甚么样的过程?
文章评论

共有 1 条评论

  1. open-end 于 2007-06-02 21:21:10发表:

    我们仍以BASH 为讨论的shell 语言
    每一种编程语言中,我们都会碰到变量的作用域的问题。(比如在函数中定义的变量在函数外不能使用的)
    BASH 中也有类似的问题,局部变量和环境变量(全局变量)。
    局部变量是普通的变量,仅在创建它的Shell中有效。
    环境变量。我们更多的使用“环境变量”而不是“全局变量”,因为这个名称更
    能体现它的特点。环境变量对创建它的Shell及其派生出来的子进程都有效。或者说环境变量可以继承,但它对其它与创建它的Shell没有关系的Shell并不可见。
    声明环境变量:declare -x 变量名=值
    export 变量名=值
    export 已经定义的局部变量名
    在谈谈另一类的重要变量,位置变量。函数,脚本等都需要参数,位置变量就是

    用来获得这些参数的。相当于其它编程语言的形参。
    $0 表示当前脚本文件名。
    $1,$2,$3,........,$9,${10},.... 表示第1,2,3.......个参数。
    $# 位置变量的个数
    $* $@ 表示所有的位置变量。(当然,两者还是有区别的。)