Shell脚本更改用户,指定一些输入但随后与shell交互

时间:2013-09-16 12:48:21

标签: shell ksh expect

我正在编写脚本以将用户从root更改为poletst(另一个用户)。当我更改用户服务器时,请在我必须通过按1,2或3

选择的三个区域中询问

我正在编写一个shell脚本来自动执行某个步骤,并且有一个步骤涉及更改用户并默认选择区域1.

su - poletst
1

它不起作用。它带我到用户但不改变区域。如何执行此操作?

1 个答案:

答案 0 :(得分: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