使用 Bash 在 Linux 中设置环境变量

2024-10-12 10:28:00
admin
原创
258
摘要:问题描述:在 中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 &...

问题描述:

在 中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
相关推荐
  政府信创国产化的10大政策解读一、信创国产化的背景与意义信创国产化,即信息技术应用创新国产化,是当前中国信息技术领域的一个重要发展方向。其核心在于通过自主研发和创新,实现信息技术应用的自主可控,减少对外部技术的依赖,并规避潜在的技术制裁和风险。随着全球信息技术竞争的加剧,以及某些国家对中国在科技领域的打压,信创国产化显...
工程项目管理   2577  
  为什么项目管理通常仍然耗时且低效?您是否还在反复更新电子表格、淹没在便利贴中并参加每周更新会议?这确实是耗费时间和精力。借助软件工具的帮助,您可以一目了然地全面了解您的项目。如今,国内外有足够多优秀的项目管理软件可以帮助您掌控每个项目。什么是项目管理软件?项目管理软件是广泛行业用于项目规划、资源分配和调度的软件。它使项...
项目管理软件   1553  
  IPD(Integrated Product Development)流程作为一种先进的产品开发管理模式,在众多企业中得到了广泛应用。其中,技术评审与决策评审是IPD流程中至关重要的环节,它们既有明显的区别,又存在紧密的协同关系。深入理解这两者的区别与协同,对于企业有效实施IPD流程,提升产品开发效率与质量具有重要意义...
IPD管理流程   26  
  本文介绍了以下10款项目管理软件工具:禅道项目管理软件、ClickUp、Freshdesk、GanttPRO、Planview、Smartsheet、Asana、Nifty、HubPlanner、Teamwork。在当今快速变化的商业环境中,项目管理软件已成为企业提升效率、优化资源分配和确保项目按时交付的关键工具。然而...
项目管理系统   21  
  建设工程项目质量关乎社会公众的生命财产安全,也影响着企业的声誉和可持续发展。高质量的建设工程不仅能为使用者提供舒适、安全的环境,还能提升城市形象,推动经济的健康发展。在实际的项目操作中,诸多因素会对工程质量产生影响,从规划设计到施工建设,再到后期的验收维护,每一个环节都至关重要。因此,探寻并运用有效的方法来提升建设工程...
工程项目管理制度   18  
热门文章
项目管理软件有哪些?
曾咪二维码

扫码咨询,免费领取项目管理大礼包!

云禅道AD
禅道项目管理软件

云端的项目管理软件

尊享禅道项目软件收费版功能

无需维护,随时随地协同办公

内置subversion和git源码管理

每天备份,随时转为私有部署

免费试用