Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1352305
  • 博文数量: 245
  • 博客积分: 10021
  • 博客等级: 上将
  • 技术积分: 3094
  • 用 户 组: 普通用户
  • 注册时间: 2008-05-12 14:51
文章存档

2011年(2)

2009年(152)

2008年(91)

我的朋友

分类:

2009-01-15 14:08:20

变数的有效范围

虾密??变数也有使用的‘范围’?没错啊~我们在上头的 export 指令说明中,就提到了这个概念了。如果在跑程式的时候,有父程序与子程序的不同程序关系时, 则‘变数’可否被引用是 export 有关。被 export 后的变数,我们可以称他为‘环境变数’! 环境变数可以被子程序所引用,但是其他的自订变数内容就不会存在于子程序中。也就是说: 我们自行设定的变数,只在目前这个 shell 环境当中存在, 在子程序中将不会存在此一变数。除非使用 export 将自订变数变成环境变数。

其实除了 shell 的父、子程序外,在脚本( scripts )的编写当中,由于有的软体会使用到 2 个以上的 scripts 做为一个完整的套件!也就是说,假如你有两支程式,一支为 scripts1.sh 以及 scripts2.sh ,而 scripts2.sh 会去引用 scripts1.sh 的变数,这个时候,嘿嘿!你在 scripts1.sh 当中设定的变数请‘千万记得以 export 设定’, 否则你的变数将无法在两个 scripts 之间互相被引用喔!当这个 scripts 执行完毕之后,刚刚在 scripts 当中设定的变数也就‘失效了!’。

其实,要瞭解不同程序之间变数的变换,应该要先瞭解‘程序’的概念比较好, 但是我们还没有讲到.....没关系~等你念到程序章节后,还可以再回来好好的看一看。 基本上,环境变数可以让子程序继续引用的原因,是因为:

    * 当启动一个 shell ,作业系统分配一记忆区块给 shell 使用,此区域之变数可以让子程序存取;
    * 利用 export 功能,可以让变数的内容写到上述的记忆区块当中(环境变数);
    * 当载入另一个 shell 时 (亦即启动子程序,而离开原本的父程序了),子 shell 可以将父 shell 的环境变数所在的记忆区块导入自己的环境变数区块当中。

透过这样的关系,我们就可以让某些变数可以在相关的程序之间存在,以帮助自己更方便的操作环境喔!
阅读(559) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~