尝试使用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)
Run Code Online (Sandbox Code Playgroud)
错误:
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
Run Code Online (Sandbox Code Playgroud)
知道我做错了什么.提前致谢.
问题是你将字符串插值放在错误的地方; 它必须直接在字符串之后而不是在parens之外.(顺便说一句,这不是面料特有的.)
所以
run('adduser -g vpn -c %s %s' % (eid, uid))
Run Code Online (Sandbox Code Playgroud)
代替
run('adduser -g vpn -c %s %s') % (eid, uid)
Run Code Online (Sandbox Code Playgroud)
和
run("echo -e '%s\n' | passwd %s" % (password, uid))
Run Code Online (Sandbox Code Playgroud)
代替
run("echo -e '%s\n' | passwd %s") % (password, uid)
Run Code Online (Sandbox Code Playgroud)