如何在 paramiko 中运行管道命令?我正在这样做:
statement = 'grep thing file | grep thing2 | tail -1'
last_msg = conn.execute(statement)
我得到的输出grep thing file
only.
Because grep
不知道如何处理|
。准备好进行一些令人讨厌的逃跑吧:
statement = """sh -c 'grep thing file | grep thing2 | tail -1'"""
这会在另一端创建一个 shell,并要求它解释该字符串grep thing file | grep thing2 | tail -1
。单引号是必要的,因为sh -c
只接受一个参数。
这样,shell 将为您创建管道,运行所有命令。你最好确保文件名file
不包含空格。如果是这样,请尝试"file"
.
正如您所看到的,这很快就会变得非常难看。我建议你将管道放入 shell 脚本中。然后你可以避免引号并运行脚本sh -c script.sh
.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)