paramiko中的管道命令

Tem*_*lar 5 python grep pipe paramiko

我如何在paramiko中运行管道命令?我这样做: -

statement = 'grep thing file | grep thing2 | tail -1'
last_msg = conn.execute(statement)
Run Code Online (Sandbox Code Playgroud)

我得到的输出grep thing file.

Aar*_*lla 8

因为grep不知道如何处理|.准备好一些讨厌的逃脱:

statement = """sh -c 'grep thing file | grep thing2 | tail -1'"""
Run Code Online (Sandbox Code Playgroud)

这会在另一侧创建一个shell,并要求它解释该字符串grep thing file | grep thing2 | tail -1.单引号是必要的,因为sh -c只接受一个参数.

这样,shell将为您创建管道,运行所有命令.并且您最好确保文件名file不包含空格.如果是的话,试试吧"file".

  • @Templar`statement =“”“ ... grep%s文件| grep%s ...”“”%(“ thing”,“ thing2”)`记住*确实*检查您的输入,因为您可以这样做如果可以更改任何参数,则在另一端执行任何您想执行的操作。 (2认同)