2013-11-21 23 views
-1

我需要通過Fabric API(ssh)運行一些bash命令。Python - 通過SSH運行時的字符串格式化

我有以下字符串在我的Python模塊:

newCommand = command + "'`echo -ne '\\015'" 

當我在Python直接打印這個字符串輸出是預期:

command'`echo -ne '\015' 

但是,如果我嘗試運行此命令通過Fabric API命令以某種方式修改爲:

/bin/bash -l -c "command'\`echo -ne '\015'" 

注意t他''之前'回聲'。爲什麼這會發生? '\'正在破壞我的命令,我無法成功運行該命令。

PS:前綴 「/斌/慶典-l -c」 是因爲這是面料如何與SSH預計

+0

字符串應該做的命令是什麼? –

+0

我需要在後臺啓動MySQL進程。 Nohup不能使用Fabric(對我來說仍然是個謎)。所以我使用屏幕。使用newCommand,我將MySQL啓動命令發送到之前創建的一個屏幕。 'echo -ne'\ 015'部分是模擬按下的ENTER鍵。 –

回答

0

這不是一個有效的shell命令:

command'`echo -ne '\015' 

即使你加缺少反引號和單引號,這與編寫「命令」並按回車無關。

您的命令將要運行的背景下,基本上,如果你想通過ssh和粘貼命令,你會得到什麼:

clientprompt$ ssh host 
Welcome to Host, User 
hostprompt$ <COMMAND HERE> 

你應該專注於找到一個命令,做什麼,你的努力想要和不是你可以寫的一系列按鍵做到這一點(這不是ssh的工作原理)。