0

私のコードは次のようになります:

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

最初の実行では正常に動作してユーザーを作成しますが、2回目の実行では、ユーザーが既に存在するというエラーが表示されます。

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

:を\でエスケープしようとしましたが、同じ結果が得られます。私が行方不明になっている明らかなものはありますか?

4

1 に答える 1

1

完全を期すために私自身の質問に答えたいだけです。これはバージョンの問題であり、最新バージョンで文書化されています。

ドキュメントから:

バージョン1.0で変更:このモジュールの他の関数と一貫性を保つために、ファイル名とテキストの引数の順序を入れ替えました。

于 2012-06-10T18:53:53.060 に答える