我正在编写一个脚本(Python2.7.10)来登录网络设备并收集供应商可能要求的诊断信息。这很简单,但我遇到了一个有趣的问题(至少对我来说)。在
我已经用尽了我有限的知识。在
这是调用要运行的函数的代码段:
elif args.hostname and args.username and args.jtac and args.commands and args.shell:
print("RUN FOR SINGLE HOST w/ SHELL AND CLI COMMANDS")
open_ssh_session(args.hostname, args.username, password)
commands_and_iterations_cli(args.hostname, args.jtac, args.iterations, float(args.interval))
commands_and_iterations_shell(args.username, args.hostname, args.jtac, args.iterations, float(args.interval))
single_core_dump(args.hostname, args.username, password, args.jtac)
pull_files_from_juniper_device(args.hostname, args.username, password, args.jtac)
push_files_to_juniper_sftp(args.hostname, args.username, password, args.jtac)
所以我有两个功能:
^{pr2}$如果我独立运行commands_and_iterations_cli()
或commands_and_iterations_shell()
,那么代码运行得非常完美。但是,当我同时尝试这两种方法(给定的示例)时,CLI函数将正确运行,然后在运行shell函数时,shell函数将打印其中的文本,并提示输入根密码,然后立即跳到下一个函数,而不提示命令。我甚至试过在shell函数运行之前给它一个30秒的睡眠时间,然后行为就这样发生了。在
谢谢大家。在
它不起作用,因为您必须使用
CTRL+D
退出sys.stdin.readlines()
,后者关闭流,对它的进一步调用什么也不做(即返回空列表)。在相关问题 更多 >
编程相关推荐