我有一个与版本控制软件(clearcase)一起使用的复杂的交互式脚本。
用户根据脚本的提示选择/键入选项。
目标是将所有内容(脚本输出、提示和用户输入)保存到文件中以供进一步处理。 例如,行
perlscript | tee output.tmp
显示 Perl 脚本的前两个打印,然后(可能在从版本控制系统提取信息时)执行停止(没有任何反应)并且没有任何内容写入文件。 外壳是csh。
是否可以在不更新/扩展 perlscript 的情况下完成?
您可以使用
script
命令捕获整个会话的日志。
只需输入:
script <logfilename>
在正常运行脚本之前。完成后,输入
exit
关闭日志文件。
如果您想将其合并到脚本中,您可以创建一个包装脚本来运行它,如下所示:
#!/bin/bash
script "My_logfile" my_script
这将创建日志文件并运行
my_script
。当脚本结束时,日志文件将关闭。