2017-08-09 87 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