您的Shell脚本没有终止。它仍在运行。您会收到提示,因为
script正在生成新的shell。
用例为
script:
- 开始
script
(产生一个新的shell) - 做命令
- 退出外壳程序(注销)并移至上一个外壳程序
- 检查或打印由创建的日志文件
script
因此基本上
script可以按预期工作。您将必须找到另一种方式来实现您想要的。
您可以像这样记录脚本的执行:
#! /bin/bashexec > logfile 2>&1set -xFOO=BARecho $FOO
说明:
exec > logfile 2>&1
将stdout和stderr重定向到日志文件set -x
使bash在执行命令之前先打印所有命令
例:
$ ./foo.sh$ cat logfile + FOO=BAR+ echo BARBAR
此方法的缺点是该脚本不打印任何输出供人类查看。一切都进入日志文件。
另外,您也可以这样:
#! /bin/bash# nothing special hereFOO=BARecho $FOO
然后像这样执行:
$ script -c "bash -x foo.sh"script started, file is typescript+ FOO=BAR+ echo BARBARscript done, file is typescript$ cat typescript script started on Mi 18 Mai 2011 01:05:29 CEST+ FOO=BAR+ echo BARBARscript done on Mi 18 Mai 2011 01:05:29 CEST



