【发布时间】:2013-11-21 00:11:24
【问题描述】:
我需要通过 Fabric API (ssh) 运行一些 bash 命令。
我的 Python 模块中有以下字符串:
newCommand = command + "'`echo -ne '\\015'"
当我直接在 Python 中打印此字符串时,输出是预期的:
command'`echo -ne '\015'
但是,如果我尝试通过 Fabric API 运行此命令,该命令会以某种方式修改为:
/bin/bash -l -c "command'\`echo -ne '\015'"
注意“回声”之前的“\”。为什么会这样? '\' 破坏了我的命令,我无法成功运行该命令。
ps:前缀“/bin/bash -l -c”是预期的,因为这就是 Fabric 与 SSH 一起工作的方式
【问题讨论】:
-
字符串中的命令应该做什么?
-
我需要在后台启动 MySQL 进程。 Nohup 不适用于 Fabric(对我来说仍然是个谜)。所以我正在使用屏幕。使用 newCommand 我将 MySQL 启动命令发送到我之前创建的一个屏幕。 'echo -ne '\015' 部分是模拟按下的 ENTER 键。