2

我似乎没有得到预期的工作。我似乎无法真正抓住提示。

这是我所拥有的:

with settings(hide('commands', 'warnings') , warn_only=True):
   prompts = expect('Are you sure you want to perform this operation? [Y/N]:', 'N')
   with expecting(prompts):
      run(sudo("/something.sh apply /some.file" , user="someuser"))

我很确定我做错了什么。

4

1 回答 1

0

我用一些小东西编辑了你的代码:

  1. expecting需要一个列表
  2. Fabric/Fexpect sudo() 和 run() 不能嵌套。你可能只需要 sudo()
  3. 您必须转义正则表达式符号,例如[]使用斜杠\[或只是使“期望”更短:

    prompts = []
    prompts += expect('Are you sure.*', 'N')
    with expecting(prompts):
        sudo("/something.sh apply /some.file" , user="someuser")
    

此外,也许你不应该hide('commands'),这取决于提示something.sh使用什么。

于 2012-11-21T15:58:33.060 回答