你的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