You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Paramiko执行含<<<的sudo su命令报语法错误,如何解决?

问题原因

错误提示sh: 0403-057 Syntax error at line 1 : '<' is not expected是因为远程主机执行命令时使用的默认shell不支持<<<(here-string)语法(比如AIX系统的默认sh就不支持该特性,而你本地使用的是bash这类支持该语法的shell)。

解决方案

方案1:显式指定用bash执行命令

将整个命令包裹在bash -c中,强制使用bash解析语法:

cmd = """bash -c \"sudo su - user -Hic 'direct <<< \\\"command\\\"'\""""

或者调整引号写法简化转义:

cmd = 'bash -c "sudo su - user -Hic \'direct <<< \"command\"\' "'

方案2:替换here-string为兼容写法

用echo管道代替<<<,这种写法在绝大多数shell中都能正常运行:

cmd = """echo 'command' | sudo su - user -Hic direct"""
额外注意

如果sudo需要输入密码,当前代码未处理交互输入逻辑,需配合stdin.write()来输入密码(你已开启get_pty=True,满足交互基础条件),这部分可根据实际场景补充。

内容的提问来源于stack exchange,提问作者Antonio Costa

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.17 19:10:33