Given:
var linuxCommmand = "/opt/ndmcli -x";
var linuxOptions = "sel stat pnum=157 detail=yes;\nquit;";
SSH.ExecuteCommand(String.Format("{0} <<!!\r\n{1}\r\n!!\r\n", linuxCommand, linuxOptions));
Consulting the session log shows the command is correct, with this:
2016-10-25 14:12:49.433 Script: call /opt/cdunix/ndm/bin/ndmcli -x <<!!
2016-10-25 14:12:49.433 sel stat pnum=157 detail=yes;
2016-10-25 14:12:49.433 quit;
2016-10-25 14:12:49.433 !!
2016-10-25 14:12:49.433 Executing user defined command.
2016-10-25 14:12:49.433 /opt/cdunix/ndm/bin/ndmcli -x <<!!
2016-10-25 14:12:49.433 sel stat pnum=157 detail=yes;
2016-10-25 14:12:49.433 quit;
2016-10-25 14:12:49.433 !! ; echo "WinSCP: this is end-of-file:$?"
2016-10-25 14:13:04.437 Waiting for data timed out, asking user what to do.
2016-10-25 14:13:04.437 Asking user:
2016-10-25 14:13:04.437 **Host is not communicating for 15 seconds.
2016-10-25 14:13:04.437
2016-10-25 14:13:04.437 Wait for another 15 seconds?** ()
Is there any reason I couldn't use stdin redirection with WinSCPNet's ExecuteCommand
?
Thanks!
****UPDATE**** Weirdly, if I add a trailing space:
var linuxCommmand = "/opt/ndmcli -x";
var linuxOptions = "sel stat pnum=157 detail=yes;\nquit;";
SSH.ExecuteCommand(String.Format("{0} <<!!\r\n{1}\r\n!!\r\n ", linuxCommand, linuxOptions));
It all works fine:
2016-10-25 15:58:03.489 Script: call /opt/cdunix/ndm/bin/ndmcli -x <<!!
2016-10-25 15:58:03.489 sel stat pnum=157 detail=yes;
2016-10-25 15:58:03.489 quit;
2016-10-25 15:58:03.489 !!
2016-10-25 15:58:03.489
2016-10-25 15:58:03.489 Executing user defined command.
2016-10-25 15:58:03.489 /opt/cdunix/ndm/bin/ndmcli -x <<!!
2016-10-25 15:58:03.489 sel stat pnum=157 detail=yes;
2016-10-25 15:58:03.489 quit;
2016-10-25 15:58:03.489 !!
2016-10-25 15:58:03.489 ; echo "WinSCP: this is end-of-file:$?"
2016-10-25 15:58:03.550 Script:
2016-10-25 15:58:03.550 Script: **************************************************************
2016-10-25 15:58:03.550 **************************************************************
2016-10-25 15:58:03.550 Script: * *
2016-10-25 15:58:03.550 * *
2016-10-25 15:58:03.550 Script: * Licensed Materials - Property of IBM *
---- (log continues, and I get my expected output) ----