我希望在脚本中更新日志,以便我知道程序已经完成了多少。我知道“put”命令,但这似乎只在我收到“Exit 2”、“Exit 1”或“Done”通知后在最终打印的“.log”文件中起作用。
在批处理模式下,日志会在进程运行时写入。有一个缓冲机制,这意味着您无法完美实时地跟踪,但对于大型作业来说,它已经接近了。假设(根据你的命令)你在 Unix/Linix 系统上:
tail -f blah.log
Run Code Online (Sandbox Code Playgroud)
将在写入终端时输出日志。
正如 Reeza 在评论中提到的,您的另一个选择是在运行期间写入单独的文件。
filename status "~/status.log";
data _null_;
file status ;
now = datetime();
put "Start at " now datetime.;
run;
<other stuff>
data _null_;
file status mod;
now = datetime();
put "I'm here at at " now datetime.;
run;
...
Run Code Online (Sandbox Code Playgroud)
然后,您可以使用相同的tail -f ~/status.log命令来跟踪该文件并查看处理已通过的位置。