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

2024-10-12 10:28:00
admin
原创
247
摘要:问题描述:在 中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大政策解读一、信创国产化的背景与意义信创国产化,即信息技术应用创新国产化,是当前中国信息技术领域的一个重要发展方向。其核心在于通过自主研发和创新,实现信息技术应用的自主可控,减少对外部技术的依赖,并规避潜在的技术制裁和风险。随着全球信息技术竞争的加剧,以及某些国家对中国在科技领域的打压,信创国产化显...
工程项目管理   2048  
  为什么项目管理通常仍然耗时且低效?您是否还在反复更新电子表格、淹没在便利贴中并参加每周更新会议?这确实是耗费时间和精力。借助软件工具的帮助,您可以一目了然地全面了解您的项目。如今,国内外有足够多优秀的项目管理软件可以帮助您掌控每个项目。什么是项目管理软件?项目管理软件是广泛行业用于项目规划、资源分配和调度的软件。它使项...
项目管理软件   1454  
  汽车行业正处于快速变革的时代,产品生命周期管理(PLM)流程的优化与再造对于企业的竞争力至关重要。关键链管理工具作为提升PLM流程效率和质量的有效手段,在汽车行业中得到了广泛应用。通过持续改进实践,这些工具能够更好地适应企业发展需求,助力汽车企业在激烈的市场竞争中脱颖而出。关键链管理工具在PLM流程中的重要性关键链管理...
plm软件   1  
  法规变化对 PLM 合规性管理的挑战全球法规处于不断变化的动态之中,这给 PLM(产品生命周期管理)合规性管理带来了诸多棘手的挑战。首先,法规的更新速度日益加快,不同国家和地区在产品安全、环保、知识产权等方面的法规要求持续演变。企业需要时刻关注这些变化,确保产品从设计、研发到生产、销售的全流程都符合最新法规。然而,要精...
PLM软件   1  
  在项目管理领域,PLM(产品生命周期管理)项目的顺利推进至关重要,而其中项目进度的有效控制是关键环节。尤其是在设定了明确的时间节点如2025年这样的目标时,如何运用甘特图进行时间跟踪并优化,进而实现项目进度的压缩,成为众多项目管理者关注的焦点。合理的进度压缩技巧不仅能确保项目按时交付,还能提升资源利用效率,降低成本,增...
plm项目管理系统是什么   1  
热门文章
项目管理软件有哪些?
云禅道AD
禅道项目管理软件

云端的项目管理软件

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

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

内置subversion和git源码管理

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

免费试用