通过vbscript(QTP)运行多个ssh shell命令时显示无效输出,而相同的命令与putty(unix服务器)一起正常工作。
第1行 - strShellCommand:第一个ssh命令连接到' serverA',查看LogA.log的内容,第二个内部ssh命令连接到' serverB',查看内容LogB.log。
第3行:运行shell命令
'Build the command string for the Shell.Run command
1. strShellCommand = ". $HOME/.profile;ssh -q user@serverA '. $HOME/.bash_profile; cd /apps/logs;cat LogA.log;ssh -q user@serverB " & """. $HOME/.bash_profile; cd /apps/logs;cat LogB.log;""" & "'"
2. strCommand = "cmd /K CD " & PLINK_LOC & " & " & "plink.exe -ssh "& strUserName & "@" & strServerName & " -pw " & strPassword & " " & strShellCommand
'Run the command and direct out put to temporary result file
3. objShell.Run strCommand & ">" & strOutputLog & " 2>"& strErrorLog &" & exit", 0, blnCursorReturn
Output:
Subversion client 1.6.11
LogA Content
Subversion client 1.6.11
LogA Content
LogB内容未显示在输出文件中,而LogA的内容重复出现。它不会执行第二个ssh命令。
Shell命令在Putty中运行良好
如果我通过putty或shell运行相同的脚本,它运行正常
ssh -q user@serverA '. $HOME/.bash_profile; cd /apps/logs;cat LogA.log;ssh -q user@serverB ". $HOME/.bash_profile; cd /apps/logs;cat LogB.log;"'
Output:
Subversion client 1.6.11
LogA Content
Subversion client 1.6.11
LogB Content
注意: 您可以看到第一个ssh命令使用单引号,而第二个命令使用双引号。这就是它在油灰中的作用。
我想将两个日志保存在输出文件中,因此您可以通过vbscript在单个命令中帮助它运行吗