我已经阅读了 argparse
文档,我正在尝试制作一个程序,该程序采用命令行参数并将这些值传递给变量,如下所示:
ssh.py -username admin -password password -hostlist 192.168.1.1, 192.168.1.2 -commands uname -a, whoami
当我在我的程序中静态分配这些值时,它可以工作,但是我无法让 argpase 将字符串传递给变量,无论目标是列表还是单个字符串。
这有效:
hostlist = ['192.168.1.1','192.168.1.2']
username = 'admin'
password = 'password'
commands = ['uname -a','whoami']
这会静默运行并且不起作用或产生错误或写入日志文件:
parser = argparse.ArgumentParser()
parser.add_argument('-u', '-username', help='The Username for authentication.')
parser.add_argument('-p', '-password', help='The password for authentication.')
parser.add_argument('-l', '-hostlist', nargs='+', help='List of devices to interact with.')
parser.add_argument('-c', '-commands', nargs='+', help='An exact list of commands to run')
args = parser.parse_args()
u,username = args.username
p,password = args.password
l,hostlist = args.hostlist
c,commands = args.commands
原文由 user6460923 发布,翻译遵循 CC BY-SA 4.0 许可协议
感谢大家!现在它似乎工作正常: