社区
Linux/Unix社区
帖子详情
nohup执行的shell脚本,全局变量不能传递到脚本中使用吗?
wangshiruyan1989
2012-05-17 11:24:17
如题:其他文件中定义的全局变量,nohup 123.sh & 执行123.sh时不能引用吗?
...全文
971
7
打赏
收藏
nohup执行的shell脚本,全局变量不能传递到脚本中使用吗?
如题:其他文件中定义的全局变量,nohup 123.sh & 执行123.sh时不能引用吗?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
7 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
wangshiruyan1989
2012-06-07
打赏
举报
回复
不能用export,会导致环境变量冲突。已经解决了,方法比较笨,通awk将需要的内容输入到一个临时文件中,在nohup的脚本中包含这个文件。
delphiwcdj
2012-05-20
打赏
举报
回复
要用export, 引用别的脚本用 source $(dirname $0)/xxx.sh
回南山种豆
2012-05-20
打赏
举报
回复
[Quote=引用 4 楼 的回复:]
哦哦,改成这样:
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 &
……
[/Quote]
--------------------------------------------
export LOGFILE #这里要导出为环境变量才能被123.sh进程使用
是的你想在子进程中使用父进程的变量共享,必须要export的。
qq120848369
2012-05-19
打赏
举报
回复
哦哦,改成这样:
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
wangshiruyan1989
2012-05-19
打赏
举报
回复
cat mm.lib
#!/usr/bin
BASE_DIR=/usr/sbin/cluster/utilites
LOGFILE=${BASE_DIR}/123.log
cat nn.sh
#!/usr/bin
. mm.lib
nohup 123.sh &
cat 123.sh
#!/usr/bin
cat ${LOGFILE} >456.log
nohup执行nn.sh脚本,${LOGFILE}是无法用的,怎么样才能引用LOGFILE变量呢?
qq120848369
2012-05-18
打赏
举报
回复
可以啊,使用source 脚本。
不必export,只要source 脚本就行了,全局变量就被设置到当前shell进程里了,如果希望它成为环境变量以便被之后的shell子进程使用就要export了。
mymtom
2012-05-18
打赏
举报
回复
用export
Linux 进程管理命令 < Series 9. >
研磨每一个命令就是擦拭手
中
的作战武器,平时不保养不理解,等到作战的时候,一定
不能
够将手
中
的武器发挥到最好,所以我们要平心、静气和专注,甘坐冷板凳一段时间,才能练就一身非凡的内功! 本教程从实战出发,...
<Linux>《
SHELL
脚本
在crontab环境下
执行
失败问题处理》>> 探索
SHELL
运行模式和加载环境变量【实践+实验】
Shell
,区别于内核被称为壳,(
Shell
脚本
)是一种命令行解释器,用于与操作系统进行交互和
执行
命令。在Unix
中
,用sharp或hash(有时是mesh)称呼字符#,用bang称呼!在测试环境,无论单条命令
执行
,还是定时
执行
整个
脚本
,都是正常的。进行试验,发现
脚本
在前台
执行
的时候均正常,在crontab后台
执行
会失败。
脚本
中
的命令是在子
shell
中
执行
,子
shell
只能继承父
shell
的环境变量,而无法修改父
shell
的环境变量。
终端修改环境变量,对
shell
脚本
无效
修改环境变量,
shell
无法实时生效
linux后台运行
shell
脚本
在UNIX上后台运行任务(
Shell
),bg还是
nohup
有时候一个任务运行的时间很长,需要将其放在后台运行,否则推出控制台后任务就会被终止,本文讲解一下怎么让任务在后台运行。 比如一个
shell
脚本
,longjobs.sh运行要很长时间,并且运行
中
有信息打印到控制台。 1,如果直接通过 ./longjobs.sh启动了任务,这时候控制台不断有信息打印出来,如果想把该任务调到后台,可以
Linux 下
使用
Shell
脚本
启动Java应用
最近项目有需要的关系,就抽出点时间研究了一下 Linux 下
使用
脚本
启动Java应用的方式。很简单,大家作为参考。 这个
脚本
是在网上找到一个挺好的通用
shell
脚本
。只需要修改一些配置变量,就可以用来做起动
脚本
了。并且除了能起动、还支持关闭、重启、查看是否正在运行的功能。 start 函数
中
,
nohup
部分其实也可以提出来放入一个配置变量
中
。 项目介绍 示例项目...
Linux/Unix社区
23,116
社区成员
74,506
社区内容
发帖
与我相关
我的任务
Linux/Unix社区
Linux/Unix社区 应用程序开发区
复制链接
扫一扫
分享
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章