使用 Bash 在 Linux 中设置环境变量
- 2024-10-12 10:28:00
- admin 原创
- 86
问题描述:
在 中tcsh
,我有以下脚本在运行:
#!/bin/tcsh
setenv X_ROOT /some/specified/path
setenv XDB ${X_ROOT}/db
setenv PATH ${X_ROOT}/bin:${PATH}
xrun -d xdb1 -i $1 > $2
与 Bash 中的函数等效的是什么tcsh setenv
?
有直接的类似物吗?环境变量用于定位可执行文件。
解决方案 1:
export VAR=value
将 VAR 设置为值。如果您需要空格,请将其括在单引号中,例如export VAR='my val'
。如果您希望插入变量,请使用双引号,例如export VAR="$MY_OTHER_VAR"
。
解决方案 2:
人们经常建议写作的原因
VAR=value
export VAR
而不是更短的
export VAR=value
长格式比短格式适用于更多不同的 shell。bash
当然,如果你知道你在处理 ,那么两种格式都可以。
解决方案 3:
使用 Linux 上的 Bash 设置本地变量和环境变量
检查 Bash 中名为 LOL 的变量的本地变量或环境变量:
el@server /home/el $ set | grep LOL
el@server /home/el $
el@server /home/el $ env | grep LOL
el@server /home/el $
健全性检查,没有名为 LOL 的本地或环境变量。
在本地(而不是环境中)设置一个名为 LOL 的局部变量。因此设置它:
el@server /home/el $ LOL="so wow much code"
el@server /home/el $ set | grep LOL
LOL='so wow much code'
el@server /home/el $ env | grep LOL
el@server /home/el $
变量“LOL”存在于局部变量中,但不存在于环境变量中。如果您重新启动终端、注销/登录或运行,LOL 将消失exec bash
。
设置局部变量,然后清除 Bash 中的所有局部变量
el@server /home/el $ LOL="so wow much code"
el@server /home/el $ set | grep LOL
LOL='so wow much code'
el@server /home/el $ exec bash
el@server /home/el $ set | grep LOL
el@server /home/el $
您也可以取消设置一个变量:
el@server /home/el $ LOL="so wow much code"
el@server /home/el $ set | grep LOL
LOL='so wow much code'
el@server /home/el $ unset LOL
el@server /home/el $ set | grep LOL
el@server /home/el $
局部变量 LOL 消失了。
将局部变量提升为环境变量:
el@server /home/el $ DOGE="such variable"
el@server /home/el $ export DOGE
el@server /home/el $ set | grep DOGE
DOGE='such variable'
el@server /home/el $ env | grep DOGE
DOGE=such variable
请注意,导出会使它显示为局部变量和环境变量。
上面导出的变量 DOGE 在 Bash 重置后仍然存在:
el@server /home/el $ exec bash
el@server /home/el $ env | grep DOGE
DOGE=such variable
el@server /home/el $ set | grep DOGE
DOGE='such variable'
取消设置所有环境变量:
您必须拿出一罐查克·诺里斯 (Chuck Norris) 来重置所有环境变量,而无需注销/登录:
el@server /home/el $ export CAN="chuck norris"
el@server /home/el $ env | grep CAN
CAN=chuck norris
el@server /home/el $ set | grep CAN
CAN='chuck norris'
el@server /home/el $ env -i bash
el@server /home/el $ set | grep CAN
el@server /home/el $ env | grep CAN
您创建了一个环境变量,然后重置终端以摆脱它们。
或者您可以像这样手动设置和取消设置环境变量:
el@server /home/el $ export FOO="bar"
el@server /home/el $ env | grep FOO
FOO=bar
el@server /home/el $ unset FOO
el@server /home/el $ env | grep FOO
el@server /home/el $
解决方案 4:
VAR=value
将 VAR 设置为值。
此后export VAR
也会将其提供给子进程。
export VAR=value
是一种同时完成这两件事的简写。
解决方案 5:
我认为您正在寻找export
- 尽管我可能错了。我以前从未玩过 tcsh。使用以下语法:
export VARIABLE=value
- 2024年20款好用的项目管理软件推荐,项目管理提效的20个工具和技巧
- 2024年开源项目管理软件有哪些?推荐5款好用的项目管理工具
- 项目管理软件有哪些?推荐7款超好用的项目管理工具
- 项目管理软件哪个最好用?盘点推荐5款好用的项目管理工具
- 项目管理软件有哪些最好用?推荐6款好用的项目管理工具
- 项目管理软件有哪些,盘点推荐国内外超好用的7款项目管理工具
- 2024项目管理软件排行榜(10类常用的项目管理工具全推荐)
- 项目管理软件排行榜:2024年项目经理必备5款开源项目管理软件汇总
- 2024年常用的项目管理软件有哪些?推荐这10款国内外好用的项目管理工具
- 项目管理必备:盘点2024年13款好用的项目管理软件