首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 操作系统 > UNIXLINUX >

nohup执行的shell脚本,全局变量不能传递到脚本中使用吗?该怎么处理

2012-06-08 
nohup执行的shell脚本,全局变量不能传递到脚本中使用吗?如题:其他文件中定义的全局变量,nohup 123.sh & 执

nohup执行的shell脚本,全局变量不能传递到脚本中使用吗?
如题:其他文件中定义的全局变量,nohup 123.sh & 执行123.sh时不能引用吗?

[解决办法]
用export
[解决办法]
可以啊,使用source 脚本。

不必export,只要source 脚本就行了,全局变量就被设置到当前shell进程里了,如果希望它成为环境变量以便被之后的shell子进程使用就要export了。
[解决办法]
哦哦,改成这样:

cat mm.lib
#!/usr/bin
BASE_DIR=/usr/sbin/cluster/utilites
LOGFILE=${BASE_DIR}/123.log

cat nn.sh
#!/usr/bin
. mm.lib
export LOGFILE #这里要导出为环境变量才能被123.sh进程使用
nohup 123.sh &

cat 123.sh
#!/usr/bin
cat ${LOGFILE} >456.log
[解决办法]

探讨

哦哦,改成这样:

cat mm.lib
#!/usr/bin
BASE_DIR=/usr/sbin/cluster/utilites
LOGFILE=${BASE_DIR}/123.log

cat nn.sh
#!/usr/bin
. mm.lib
export LOGFILE #这里要导出为环境变量才能被123.sh进程使用
nohup 123.sh &

……

[解决办法]
要用export, 引用别的脚本用 source $(dirname $0)/xxx.sh

热点排行