我想知道程序完成的时间。但它总是显示相同的时间。这是我的 shell 脚本。但它总是显示START TIME
与 相同END TIME
。
START=$(date +"%r")
nohup Rscript program_1.R >program_1.Rout & wait & echo START TIME = $START\n END TIME = " `date +"%r"`";
答案1
问题是,每当您使用&
此命令在后台执行定界命令时,以下命令将立即启动和第一个命令而不是后它。您的问题与nohup
(这意味着父 shell 退出时仍在运行的程序不应被杀死而应继续执行)无关。对于你的问题尝试类似的事情
nohup /bin/bash -s <<< "date; your-script.sh ; date " >& all-output.txt &
这将在后台运行您的作业和输出计时,并将所有输出重定向到给定文件。
顺便说一句,如果您只对运行时感兴趣,您应该这样做
nohup /bin/bash -s <<< "time your-script.sh " >& all-output.txt &