环境变量和shell变量到底有什么区别
展开全部
我们仍以BASH 为讨论的shell 语言
每一种编程语言中,我们都会碰到变量的作用域的问题。(比如在函数中定义的变量在函数外不能使用的)
BASH 中也有类似的问题,局部变量和环境变量(全局变量)。
局部变量是普通的变量,仅在创建它的Shell中有效。
环境变量。我们更多的使用“环境变量”而不是“全局变量”,因为这个名称更
能体现它的特点。环境变量对创建它的Shell及其派生出来的子进程都有效。或者说环境变量可以继承,但它对其它与创建它的Shell没有关系的Shell并不可见。
声明环境变量:declare -x 变量名=值
export 变量名=值
export 已经定义的局部变量名
在谈谈另一类的重要变量,位置变量。函数,脚本等都需要参数,位置变量就是
用来获得这些参数的。相当于其它编程语言的形参。
$0 表示当前脚本文件名。
$1,$2,$3,........,$9,${10},.... 表示第1,2,3.......个参数。
$# 位置变量的个数
$* $@ 表示所有的位置变量。(当然,两者还是有区别的。)
每一种编程语言中,我们都会碰到变量的作用域的问题。(比如在函数中定义的变量在函数外不能使用的)
BASH 中也有类似的问题,局部变量和环境变量(全局变量)。
局部变量是普通的变量,仅在创建它的Shell中有效。
环境变量。我们更多的使用“环境变量”而不是“全局变量”,因为这个名称更
能体现它的特点。环境变量对创建它的Shell及其派生出来的子进程都有效。或者说环境变量可以继承,但它对其它与创建它的Shell没有关系的Shell并不可见。
声明环境变量:declare -x 变量名=值
export 变量名=值
export 已经定义的局部变量名
在谈谈另一类的重要变量,位置变量。函数,脚本等都需要参数,位置变量就是
用来获得这些参数的。相当于其它编程语言的形参。
$0 表示当前脚本文件名。
$1,$2,$3,........,$9,${10},.... 表示第1,2,3.......个参数。
$# 位置变量的个数
$* $@ 表示所有的位置变量。(当然,两者还是有区别的。)
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询