2013-09-16 66 views
1

我正在編寫腳本來將用戶從根改爲poletst(另一個用戶)。當我改變用戶服務器問我在三個領域,我必須通過按1,2或3shell腳本來改變用戶,指定一些輸入,但然後與shell進行交互

我正在寫一個shell腳本來自動執行某個步驟,並且有一個涉及更改用戶和選擇區域1的步驟默認。

su - poletst 
1 

它不工作。它把我帶到用戶,但不改變面積。如何執行此操作?

+0

那個提示是什麼樣的? – mnagel

+0

提示給我三種選擇 1)測試 2)測試1 3)測試2 它可以通過控制1 2或3 – user2644549

回答

2

你可以這樣做:

expect -c 'spawn su - poletst; send "1\r"; interact' 

或者,如果它不工作,試試這個:

expect -c 'spawn su - poletst; expect "prompt"; send "1\r"; interact' 

只是一個字符串時在消息的最後一行替換prompt這當你被問到這個區域時,會顯示給你。

可以以及把它作爲一個腳本

#!/usr/bin/env expect -f 
spawn su - poletst 
expect "prompt" 
send "1\r" 
interact 

保存它像su-poletst.exp文件,只需要運行expect -f su-poletst.exp