Shell之环境变量、局部变量

Shell之环境变量、局部变量,第1张

变量可分为两类:

环境变量又被称为全局变量,可以在创建的shell以及任意子进程shell中使用。局部变量只能在创建的shell脚本中使用。

环境变量用于定义Shell的运行环境,保证Shell命令的正确执行,Shell通过环境变量来确定登录的用户名、登录目录等。所有的环境变量都是系统的全局变量,可用于所有的子进程中。

环境变量可以在命令行中设置,但用户退出后这些变量值也会随之丢失,所以最好在下面的文件或者目录中配置,每次用户登录都将会被初始化:

环境变量可用在任意的Shell进程中,环境变量名一般大写,并且是已经使用export内置命令进行了导出。比如HOME、PATH、UID、USER等,在用户登陆之前已经本/bin/login程序设置好了。

下面是常见的系统环境变量:

更多详情请通过env命令查看:

如果设置想自己设置环境变量,有临时生效和永久生效两种:

在.bash_profile或者/etc/profile文件中使用export导出变量,然后使用"."或者source命令使其生效。

系统的内置的环境变量或者自袜拆定义的环境变量可以通过echo或者printf进行打印:

对于有哪些变量使用env(上述已经说过)或者set命令:

使用unset取消变量,不要随意使用,尤其是系统环境变量:

局部变量的生命周期是当前的Shell脚本,如果启动另一个Shell进程或者退出当前Shell进程,变量就会丢失。

局部变量又三种定义方式:

变量名一般以字母、数字、下划线组成,其中以字母开头。

为了更念毕好的说明上面定义的三种方式,即不加引号、加单引号、加双引号的区别,以下面的例子说明:

上述a、b、c输出为:

在上面的基础上如果变成下面的例子:

a、b、c的输出有时什么呢?

从上面的例子中可以看出第一种定义a变量的方式(不带引号),内容一般为简单连续的数字、字符串等;第二种定义b变量的方式(单引号)所见即所得,内容原样输出;第三种定义c变量的方式(双引号),输出变量时引号中变量会经过解析后输出。

所以,脚本中单纯告高枣的数字可以不使用引号,但是其它普通字符串尽量使用双引号。

系列教程:

Python虚拟环境搭建-学习视频教程-腾讯课堂ke.qq.com

在Linux或Unix系统中,当前shell环境和子shell环境中有一些变量可以在父子shell环境中使用,而另一些变量则不能。

环境变量是可以在父子shell环境中共享的。这些变量是由系统管理员或用户设置的芦基,并且可以在系统中的所有进程中使用。例如,PATH变量是在所有环境中都可用的,它定义了系统的可执行文件的搜索路径。

而局部变量则只能在当前shell环境中使用,它们不能在子shell环境中共享。这些变量可以由用户在当前shell环境中设置,并且只能在链御当前shell环境中使用。例如, 使用‘x=1’这样的语句在当前shell中定义了一个局部变量x,它不能在子shell中使用。

还有一种变量是持久化变量,通过export 命令可以将局部变量变为环境变棚哗岩量,对于子shell也能使用。

总的来说,环境变量可以在父子shell环境中共享使用,而局部变量只能在当前shell环境中使用。

以下是定义环境变量命令的具体方法:

环境变量也称为全局变量,可以在创建他们的Shell及其派生出来的任意子进程Shell中洞散使用,环境变量又可以分为自定义环境变量和bash内置的环境变量,环境变量可以在命令行中设置和创建,用户退出命令行时这些变量值就会丢失,想要永久保存环境变量,可写在文件中。

通变量也可成为局部变量,只能在创建它们纳亮氏的Shell函数或Shell脚本中使用,普通变量一般由开发者在开发脚本程键者序时创建。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12543358.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-26
下一篇 2023-05-26

发表评论

登录后才能评论

评论列表(0条)

保存