文件存在于文件中时,python fabric.contrib.files.contains返回False

时间:2012-06-10 10:50:38

标签: python fabric

我的代码如下:

    run("""echo "%s:x:" """ % (username))
    if not contains('/etc/passwd', '%s:x:' % (username)):
        run("useradd --shell /bin/bash --create-home %s" % (username), pty=True)

首次运行时,它可以正常工作并创建用户,但在第二次运行时,我收到用户已经存在的错误。

    [root@vbox1] out: tom:x:
    [root@vbox1] run: useradd --shell /bin/bash --create-home tom
    [root@vbox1] out: useradd: user 'tom' already exists

我尝试使用\来逃避:但是我得到了相同的结果。有什么明显的东西我不见了吗?

1 个答案:

答案 0 :(得分:1)

只想回答我自己的完整问题。 这是一个版本问题,并记录了最新版本。

来自文档:

  

在1.0版中更改:将文件名和文本参数的顺序交换为与此模块中的其他函数一致。