当前位置: 技术问答>linux和unix
nohup执行的shell脚本,全局变量不能传递到脚本中使用吗?
来源: 互联网 发布时间:2017-02-26
本文导语: 如题:其他文件中定义的全局变量,nohup 123.sh & 执行123.sh时不能引用吗? | 哦哦,改成这样: cat mm.lib #!/usr/bin BASE_DIR=/usr/sbin/cluster/utilites LOGFILE=${BASE_DIR}/123.log cat nn.sh #!/usr/bin . mm.lib expo...
如题:其他文件中定义的全局变量,nohup 123.sh & 执行123.sh时不能引用吗?
|
哦哦,改成这样:
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 &
cat 123.sh
#!/usr/bin
cat ${LOGFILE} >456.log
|
可以啊,使用source 脚本。
不必export,只要source 脚本就行了,全局变量就被设置到当前shell进程里了,如果希望它成为环境变量以便被之后的shell子进程使用就要export了。
不必export,只要source 脚本就行了,全局变量就被设置到当前shell进程里了,如果希望它成为环境变量以便被之后的shell子进程使用就要export了。
|
--------------------------------------------
export LOGFILE #这里要导出为环境变量才能被123.sh进程使用
是的你想在子进程中使用父进程的变量共享,必须要export的。
|
要用export, 引用别的脚本用 source $(dirname $0)/xxx.sh
|
用export
您可能感兴趣的文章:
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。