2013-09-16 33 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