subprocess及paramiko处理shell命令行交互的方法
2022/2/9 7:14:42
本文主要是介绍subprocess及paramiko处理shell命令行交互的方法,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
在执行shell文件时有时候会遇到shell中包含read方法以供用户进行输入。
使用Python在运行这种shell时,本地shell可以使用subprocess.run中的input参数进行输入,示例如下:
import subprocess cmd = "sh -c 'read v; sleep 1; echo $v'" # 通过input参数指定要输入的字符串, bytes类型 p = subprocess.run(cmd, stdout=subprocess.PIPE, input=b'hello,world\n', shell=True) print(p.stdout.decode('utf-8'))
远程主机shell可以通过paramiko执行命令exec_command返回的stdin的stdin.channel.send来进行输入,示例如下:
import paramiko ssh = paramiko.SSHClient() ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy()) ssh.connect(hostname='******', port=22, username='root', password='******') cmd = "sh -c 'read v; sleep 1; echo $v'" stdin, stdout, stderr = ssh.exec_command(cmd) stdin.channel.send(b'hello,world\n') # 输入字符串,bytes类型 stdin.channel.shutdown_write() # 结束输入 print(stdout.read().decode('utf-8'))
这篇关于subprocess及paramiko处理shell命令行交互的方法的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-04-26高性能表格工具VTable总体构成-icode9专业技术文章分享
- 2024-04-16软路由代理问题, tg 无法代理问题-icode9专业技术文章分享
- 2024-04-16程序猿用什么锅-icode9专业技术文章分享
- 2024-04-16自建 NAS 的方案-icode9专业技术文章分享
- 2024-04-14ansible 在远程主机上执行脚本,并传入参数-icode9专业技术文章分享
- 2024-04-14ansible 在远程主机上执行脚本,并传入参数, 加上remote_src: yes 配置-icode9专业技术文章分享
- 2024-04-14ansible 检测远程主机的8080端口,如果关闭,则echo 进程已关闭-icode9专业技术文章分享
- 2024-04-14result 成功怎么写-icode9专业技术文章分享
- 2024-04-14stopped 状态设置为变量,由外部传递进来-icode9专业技术文章分享
- 2024-04-14为什么ansible执行远程脚本需要放到后台-icode9专业技术文章分享