我是运行bash脚本的新手。 (如果我给的标题不正确,您可以建议我。) 我想循环使用bash脚本运行jar文件。然后它将jar命令的输出写入某个文件。 Bash文件 datagenerate.sh
#!/bin/bash
echo Total iterations are 500
for i in {1..500}
do
the_output="$(java -jar data-generator.jar 10 1 mockData.csv data_200GB.csv)"
echo $the_output
echo Iteration $i processed
done
no_of_lines="$(wc -l data_200GB.csv)"
echo "${no_of_lines}"
我正在使用命令nohup sh datagenerate.sh > datagenerate.log &
运行脚本。因为我想在后台运行此脚本,所以即使我从ssh
注销,它也应继续运行,并且输出应进入datagenerate.log
。
但是,当我运行上述命令并按下Enter键或关闭终端时,该过程结束。只有Total iterations are 500
已登录到输出文件。
答案 0 :(得分:0)
您应该查看以下内容: https://linux.die.net/man/1/screen
使用此程序,您可以在命令或脚本仍在运行时关闭外壳。它们不会被中止,您可以稍后再次进行会话。
答案 1 :(得分:0)
nohup sh datagenerate.sh> datagenerate.log&
nohup应该在不使用屏幕程序的情况下以这种方式工作,但是根据您的发行版,您的sh shell可能链接到破折号。 只需将脚本可执行即可:
chmod +x datagenerate.sh
并像这样运行您的命令:
nohup ./datagenerate.sh > datagenerate.log &