获取发送:spawn id exp6未打开错误

时间:2014-05-27 11:05:43

标签: ruby bash shell

我知道这个问题有很多这里提到的解决方案,但我是这个问题的中间部分。 我创建了一个ruby脚本 snaps.rb

此脚本用于删除lvm快照。以下代码导致问题

`/usr/bin/expect <<delim
exp_internal 0
set timeout 20
spawn echo itsme | sudo -S lvremove #{snap_name}
expect {Do you really want to remove active logical volume #{name}? [y/n]:}
send "y\r"
expect eof 
delim`

snap_name 是我的快照名称,我使用expect将y或n传递给命令输入。我正在使用反引号(``)来执行ruby中的shell命令。 但我得到了以下错误。

send: spawn id exp6 not open
    while executing
""end "n

如何解决此错误。

1 个答案:

答案 0 :(得分:1)

分开echo itsme | sudo -S lvremove #{snap_name}

试试这个

`/usr/bin/expect <<delim
exp_internal 0
set timeout 20
spawn sudo lvremove #{snap_name}
send "itsme\r"
expect {Do you really want to remove active logical volume #{name}? [y/n]:}
send "y\r"
expect eof 
delim`