in reply to Net::SSH2 related query

... print $chan "ls\n"; my @response = (readline $chan);

Replies are listed 'Best First'.
Re^2: Net::SSH2 related query
by nithins (Sexton) on Nov 20, 2013 at 06:26 UTC

    I used your code , but the print statement didn't print results of "ls command". however when i run the script in debugg mode i found "@respose" having results of "ls"

      Just tried again to reproduce your error. First, I am getting the same result (nothing read), if I set the timeout in the select-function too low, say
      #select(undef,undef,undef,0.2); select(undef,undef,undef,0.001);
      Maybe You should try a higher one?

      Second, it seems, that readline (or <>) is always able to read from the channel (no select necessary). The below code works for me. For you too?

      my $chan = $ssh->channel() or die "create channel:$!\n"; $chan->shell() or die("open shell: $!\n"); $chan->blocking(0); $chan->write("ls\n") or die("write to channel: $!\n"); while ( <$chan> + ) { print $_; }

      In print $chan "ls\n";, $chan is like a filehandle (open FH, '>', 'file.txt'; print FH "something\n";). The print command sends the characters over the SSH connection to the shell on the other end.