【引言】本文是我的第一篇Linux博客,文章尝试以最简洁清晰的文字、图解和案例,把Linux Shell程序的2种变量类型介绍清楚,同时也将相关的概念如系统变量、set、env、sh、source、x可执行程序等也一并讲清楚。希望大家只要读这一篇文章,就掌握好有关Linux Shell 变量的本质和应用。
一、2种变量设置方式的比较
Shell 变量的设置方式存在2种形式。
1、本地变量(局部变量)
设置方式为 var1=value1
2、环境变量(全局变量)
设置方式为 export var2=value2
二者有什么差别呢?差别在于二者的运行空间不同。Linux Shell实际上是一个独立的程序,有着自己独立的程序内存空间,变量就存放在自身的内存空间中。当我们在Shell中再次调用sh 执行一段程序时,实际上启动了另一个Shell,自然另有一份内存空间。第1个Shell称为父程序,第2个Shell称为子程序。
在这2个程序运行时,第1种变量设置方式var1=value1 设置的变量都存在自己的内存空间中,互相不能访问,因此称为本地变量。第2种变量设置方式export var2=value2的变量存放在一个特定的环境变量区,当在父程序Shell启动子程序Shell时,子程