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