我在Linux中使用script
命令来监控我的bash中完成的所有操作,并将结果保存在myFile.log
中,并将错误保存在log.err
中。
我在~/.bash_profile
:
script -qtf 2> log.err myFile.log
参数:
-q
:不显示已保存的文件-t
:在另一个文件中显示错误-f
:实时显示日志我注意到当我执行远程命令时,无法识别$ TERM环境变量,并且不执行某些特定(和重要)应用程序命令。
为了解决这个问题,我使用了" -c"用于解释需要与env vars交互的命令的参数。但是当我使用它时,我的文件没有被写出来!
我在〜/ .bash_profile中设置了它:
script -qtfc 2> log.err myFile.log
发生了什么事?
是否有更好的方法(我确定是)进行此监控并将其全部记录到文件中?
答案 0 :(得分:0)
-c, --command command
运行命令而不是交互式shell。这使得脚本可以轻松捕获程序的输出,当stdout不是tty时,该程序的行为会有所不同。
命令选项需要参数。如果你这样写(script -qtfc 2> log.err myFile.log
),使用的命令是2>
,这肯定不是你想要的。
运行什么命令,可能在bash变量$*
中,所以可能的方法是script -qtfc "$*" 2> log.err myFile.log