在中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
tcsh setenv
Bash中的功能等效于什么?
有直接的模拟吗?环境变量用于查找可执行文件。
Answers:
export VAR=value
将VAR设置为value。如果需要空格,请用单引号将其引起来export VAR='my val'
。如果要对变量进行插值,请使用双引号,例如export VAR="$MY_OTHER_VAR"
。
在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 $