2017-09-13 109 views
-1

我想使用expect腳本運行在Heroku DYNOS一個SSH命令(例如:Get IP of Heroku dynos)登錄到DYNO時Expect腳本等待Heroku的SSH提示

確切輸出爲:

▸ heroku-cli: update available from 6.12.9 to 6.14.21-d83c94b 
Establishing credentials... done 
Connecting to <dyno> on ⬢ <app>... 
~ $ 

我確定第一行會在更新後消失。實際發生此認證/登錄需要幾秒鐘的時間。

一個簡單的期望腳本可能是這樣的:

#!/usr/bin/expect 
spawn "./ssh_into_heroku" 
expect "xxxx" 
send "my_command" 

我試過expect "~ $" { send "my_cmd" }expect "~ $ " { send "my_cmd" }但既不是工作,我不知道如何調試這一點。

「預期」部分會做什麼?

+0

這是爲什麼downvoted?它非常明確,它遵循以下所有內容:https://stackoverflow.com/help/on-topic –

回答

1

您正在等待以空格,美元符號和(我猜)另一個空格結束的提示。你會用這個:

set prompt_regex { \$ $} 
expect -re $prompt_regex