我正在尝试使用script命令记录bash会话。
script
该script命令是从bash脚本开始执行的,但是一旦执行,bash脚本就会终止。
我尝试使用各种组合来始终以相同的结果调用命令(调用该命令后立即终止bash脚本)。我得到的输出如下:
Script started, file is typescript root@ubuntu: ...
我也尝试过最后用a来调用命令,&但是再次失败了。
&
谁能告诉我如何从bash脚本调用命令?
谢谢
您的Shell脚本没有终止。它仍在运行。您会收到提示,因为script正在生成新的shell。
用例为script:
因此基本上script可以按预期工作。您将必须找到另一种方式来实现您想要的。
您可以像这样记录脚本的执行:
#! /bin/bash exec > logfile 2>&1 set -x FOO=BAR echo $FOO
说明:
exec > logfile 2>&1
set -x
例:
$ ./foo.sh $ cat logfile + FOO=BAR + echo BAR BAR
此方法的缺点是该脚本不打印任何输出供人类查看。一切都进入日志文件。
另外,您也可以这样:
#! /bin/bash # nothing special here FOO=BAR echo $FOO
然后像这样执行:
$ script -c "bash -x foo.sh" Script started, file is typescript + FOO=BAR + echo BAR BAR Script done, file is typescript $ cat typescript Script started on Mi 18 Mai 2011 01:05:29 CEST + FOO=BAR + echo BAR BAR Script done on Mi 18 Mai 2011 01:05:29 CEST