期待{send}声明后退出

时间:2017-10-19 15:39:05

标签: bash expect

当我运行我编写的脚本以帮助安装AUR包时:

<base href="/">

有时在输入密码之后只是互相干扰,它只是回声“祝你有个美好的一天”。并退出。难道我做错了什么?超时是&lt; 0,我在期待声明之后进行了互动,我还缺少什么?

1 个答案:

答案 0 :(得分:2)

我唯一能看到的是密码中可能有引号。你可能想这样做:

env _user="$USER" _pass="$pass" expect <<'END'
    set timeout -1
    spawn makepkg -Ascfi --noconfirm
    expect -nocase "password for $env(_user):" {
        send -- $env(_pass)
        send "\r"
    }
    interact
END

此处无需eval spawn

使用引用的heredoc也可以使代码更易于阅读。