2017-08-09 124 views
0

我想爲遠程服務器中的文件運行awk命令。我使用ssh連接,並運行以下命令:使用Javascript運行遠程命令

cat /orch/servers | grep "+sNo+" | awk '{print $1}' 

此命令的輸出類型是字符串。但我想這個輸出是數組。的JavaScript代碼如下:

vmIDListCmd = "cat /orch/servers | grep "+sNo+" | awk '{print $1}'" 
try { 
session = new SSHSession(hostName, username, 22); 
session.connectWithPasswordOrIdentity(passwordAuthentication, password); 
vmIDList = session.executeCommand(vmIDListCmd, true); 
} 
catch (e) { 
throw "Unable to execute command: " + e; 
} 
finally { 
if (session) { 
    session.disconnect(); 
} 
System.log(vmIDList); 
} 

輸出:

vm1 vm2 vm3 vm4 

vmIDList變量(輸出)是一個字符串。我想這個變量是一個數組。

回答

1

使用split可以很容易地將字符串轉換爲數組。

var newArray = vmIDList.split(" "); 
+0

我試過這個命令。這是工作,但我的陣列只有大1元素?我該如何解決這個問題? –

+0

對不起。這是一個數組,但我使用了一個叫做「VMWare Orchestrator」的工具來完成這個項目,並且我認爲這是一個錯誤。我必須考慮拆分字符串的另一個解決方案。 –

+0

檢查字符串'vm1'和'vm2'是否由空格分隔(因爲它是分隔符中使用的參數),並用此[示例]測試(https://jsfiddle.net/wb1nqd0h/7/ )我把字符串轉換成數組並迭代它。 – jcbermu