尝试使用python fabric脚本添加用户。
uid = prompt("Enter username:")
eid = prompt("Enter user's email address:")
password = generate_passwd()
run('adduser -g vpn -c %s %s') % (eid, uid)
run("echo -e '%s\n' | passwd %s") % (password, uid)
print (password)
错误:
File "/tmp/hardway/fabfile.py", line 56, in addvpnuser
run('adduser -g vpn -c %s %s') % (eid, uid)
TypeError: not all arguments converted during string formatting
知道我做错了什么。提前谢谢。
答案 0 :(得分:5)
问题在于你将字符串插值放在错误的位置;它必须直接在字符串之后而不是在parens之外。 (顺便说一句,这不是面料特有的。)
所以
run('adduser -g vpn -c %s %s' % (eid, uid))
而不是
run('adduser -g vpn -c %s %s') % (eid, uid)
和
run("echo -e '%s\n' | passwd %s" % (password, uid))
而不是
run("echo -e '%s\n' | passwd %s") % (password, uid)