linux配置环境变量语句,Linux 三种设置环境变量的方法

本文介绍了如何在命令行中设置临时环境变量,这些变量只对特定命令有效,不会影响到其他命令或新的shell会话。同时,也讲解了使用`export`命令设置的环境变量如何在当前shell会话内生效,以及如何通过修改配置文件实现环境变量的持久化存储。此外,还探讨了`echo`作为shell内建命令的特点以及`which`命令在不同系统上的表现。
摘要由CSDN通过智能技术生成

一、命令前置的临时环境变量

网上一搜一大把都是说 export 命令与 .bash_profile 文件的,却鲜有人提及可以在命令行语句前设置临时环境变量,并且该变量只对当前语句有效。

# usage: var=value [var2=value2 ...] script

var=value sh -c 'echo $var' # 打印 value

echo $var # 打印 空行,因为上面的临时环境变量已经失效

var1=value1 var2=foo sh -c 'echo $var2' # 打印 foo

ps:var=value echo $var 这句是无法打印出临时环境变量 var 的,我也搞不清为什么(参考),所以只能改用 sh -c 'echo $var' 来包装一下。

哦,我有点想通了,感觉应该是这样解释的:var=value script 这种用法,是针对后面 script 语句启动的进程,给这个新的进程设置环境变量。而 echo 是 shell 的内建命令(Builtin Command),它并不会另外启动一个进程,只会读取当前 shell 会话的环境变量。

如何验证 echo 是内建命令呢?可以通过同是内建命令的 type 指令来检查。

10f25706a49b331231553a8ebb16c5c5.png

我一开始还用 which echo 来检查,然后却发现有的系统会输出 builtin,有的会输出 /bin/echo。原因是对于不同的系统,或者说不同 shell,which 命令本身可能是内建命令,也有可能是外部程序。如果作为外部程序,是无法识别内建命令的 echo 的。

二、当前会话内有效的环境变量

使用 export 命令,可以为当前的 shell 会话设置环境变量,并且只在当前会话内有效。

export var=foo # 添加环境变量

export test=123

echo $var # 打印 foo

unset var # 删除环境变量

echo $var # 打印 空行

echo $test # 打印 123

如果另外打开一个 shell 窗口,echo 这两个新增的环境变量,都是不存在的。

三、持久存储的环境变量

就是修改 /etc/profile, ~/.bash_profile 等等这些文件,具体网上找吧。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值