你的shell脚本并没有终止。它仍在运行。您正在收到提示,因为script
正在产生新的外壳。
的应用案例script
是:
- 开始
script
(产生一个新的shell)
- 就命令
- 出口外壳(注销),并下降到以前的shell
- 检查或打印日志文件由
script
创建
所以基本上script
按预期工作。你将不得不寻找另一种方式来实现你想要的。
,您可以登录你的脚本是这样执行:
#! /bin/bash
exec > logfile 2>&1
set -x
FOO=BAR
echo $FOO
说明:
exec > logfile 2>&1
重定向输出和错误记录到logfile
set -x
使得bash的打印执行它 之前的每一个命令
考试ple:
$ ./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
请向我们展示您的bash脚本,或者至少是'script'行。 – 2011-05-12 22:22:46
从脚本提示做一个ps(无参数),这应该显示发生了什么。你为什么认为它不起作用?如果这是因为打字稿是“空的”,那么你正在遭受缓冲。 – cdarke 2011-05-13 13:05:53
@Robin Green:你可以在这里找到我的脚本:[链接](http://pastebin.com/CuAyPfhM) – limp 2011-05-14 14:26:05