【发布时间】:2015-07-16 16:51:12
【问题描述】:
致力于自动化我定期运行的几个脚本。我有一个看起来应该很容易的东西,但我遇到了困难。我正在使用 VBA 创建两个文件并运行它。一个文本文件包含命令列表,一个 BAT 文件包含启动它的 plink 命令。两个文件都在下面。 plink.exe 和这两个文件在创建后都在桌面上。
问题是我正在运行的脚本有输出,即使我在命令末尾使用了“&”修饰符。我不允许以任何方式修改脚本。运行命令文件时,脚本运行得很好,但由于输出,退出命令被忽略。我尝试在退出之前将 sleep 命令添加到脚本行的末尾,并在脚本行之后直接添加退出。
BAT 文件 - Chg.bat
plink [user]@[ip] -pw [password] < C:\Users\Mike\Desktop\pcmd.txt
命令文件 - pcmd.txt
cd /opt/test/srt
./srt.tool 20150506 20150506 &
exit
【问题讨论】:
-
你对输出感兴趣吗?
-
不,不在乎。虽然如果我们不能完全忽略它,我不反对等到输出完成后再执行退出命令。我只是无法做到这一点
-
你有没有尝试像
./srt.tool 20150506 20150506 > /dev/null 2>&1一样重定向它 -
好的,所以重定向它可以隐藏它,但现在退出命令被挂断了。当退出发生时,我得到一个“你有正在运行的工作”。我在服务器上运行了一个 ps-ef |grep srt.tool 并在脚本结束时进入睡眠状态。在睡眠后运行退出命令时,srt.tool 已完成。
-
srt.tool在后台运行自己的一些进程(例如使用&)。
标签: shell batch-file ssh plink