在
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
函数相当于什么?
有直接模拟吗?环境变量用于定位可执行文件。
export VAR=value
会将 VAR 设置为值。如果需要空格,请将其括在单引号中,例如 export VAR='my val'
。如果您希望对变量进行插值,请使用双引号,例如 export VAR="$MY_OTHER_VAR"
。
人们经常建议写作的原因
VAR=value
export VAR
而不是较短的
export VAR=value
较长的形式比较短的形式适用于更多不同的 shell。 如果您知道自己正在处理
bash
,当然,两者都可以。
检查 Bash 中名为 LOL 的变量的本地或环境变量:
$ set | grep LOL
$
$ env | grep LOL
$
健全性检查,没有名为 LOL 的本地或环境变量。
在本地而不是环境中设置一个名为 LOL 的局部变量。所以设置一下:
$ LOL="so wow much code"
$ set | grep LOL
LOL='so wow much code'
$ env | grep LOL
$
变量“LOL”存在于局部变量中,但不存在于环境变量中。 如果您重新启动终端、注销/登录或运行
exec bash
,LOL将会消失。
设置一个局部变量,然后清除Bash中的所有局部变量
$ LOL="so wow much code"
$ set | grep LOL
LOL='so wow much code'
$ exec bash
$ set | grep LOL
$
您也可以只取消设置一个变量:
$ LOL="so wow much code"
$ set | grep LOL
LOL='so wow much code'
$ unset LOL
$ set | grep LOL
$
局部变量 LOL 消失了。
将局部变量提升为环境变量:
$ DOGE="such variable"
$ export DOGE
$ set | grep DOGE
DOGE='such variable'
$ env | grep DOGE
DOGE=such variable
请注意,导出使其同时显示为局部变量和环境变量。
上面导出的变量 DOGE 在 Bash 重置后仍然存在:
$ exec bash
$ env | grep DOGE
DOGE=such variable
$ set | grep DOGE
DOGE='such variable'
取消设置所有环境变量:
你必须拿出一罐 Chuck Norris 来重置所有环境变量,而无需注销/登录:
$ export CAN="chuck norris"
$ env | grep CAN
CAN=chuck norris
$ set | grep CAN
CAN='chuck norris'
$ env -i bash
$ set | grep CAN
$ env | grep CAN
您创建了一个环境变量,然后重置终端以摆脱它们。
或者您可以像这样手动设置和取消设置环境变量:
$ export FOO="bar"
$ env | grep FOO
FOO=bar
$ unset FOO
$ env | grep FOO
$
VAR=value
将 VAR 设置为值。
之后
export VAR
也会将其交给子进程。
export VAR=value
是两者兼而有之的简写。
我认为你正在寻找
export
- 虽然我可能是错的..我以前从未玩过 tcsh 。使用以下语法:
export VARIABLE=value