2012-01-31 52 views
2

我有一個試圖安裝bin的腳本。EULA接受Bash腳本

除了.bin打開EULA以外,一切正常。 在腳本重新開始並自行完成安裝之前,您必須手動將Ctrl c從此更多實例中移出。

因爲這更多的是逃離shell腳本不知道打開後要運行什麼。 有沒有一種方法可以期待尋找並預防它?

沒有自定義標誌來自動接受eula。

我到處尋找解決方案,但沒有任何工作。

命令本身是很簡單的,但定界符

/bin/bash gp.bin << AUTO 
REST 
OF 
PARAMETERS 
AUTO 

回答

3

您應該能夠使用「Q」退出更合適的前遭到封鎖,但只會交互工作。

如果安裝腳本寫得很好,你可以使用更多的東西作爲你的尋呼機。試試:

export PAGER=cat 

然後看看行爲是否改變。

如果你仍然卡住,你可能不得不看看類似Expect而不是heredoc。

+0

好主意,重新分配尋呼機。 :)爲什麼'q'不能與'expect'一起工作? – 2012-01-31 21:58:41

+0

「q」應該可以很好地工作。請記住,期望模擬交互性。 :-) – Graham 2012-01-31 22:17:17

+0

可悲的是它沒有奏效,但Expect已經。唯一的問題是我現在必須在腳本的早期自動安裝。儘管如此。謝謝。 – 2012-02-01 14:23:41

2

expect可以立即發送Ctrl-C:http://expect.sourceforge.net/FAQ.html#q54

例如:

#!/usr/bin/env expect 

spawn "/vendor/install/script.sh" 
expect "EULA blah blah blah" 
send \003 
#rest of expect script... 

但嘗試PAGER環境變量已經建議。