http://www.perlmonks.org?node_id=1026732

magic_007 has asked for the wisdom of the Perl Monks concerning the following question:

A newbie to Perl. I was trying to use Net::SSH::Any module to execute some commands on Linux box from my perl code and get the output. It works fine but for few commands.

use Net::SSH::Any; $ssh = Net::SSH::Any->new($hostname, user => $username, password => $p +assword); $out = $ssh->capture(“who am I”); print $out;

Result: No output @ all. “Who am I” command doesn’t return anything. Please let me know if I'm missing something here"

Replies are listed 'Best First'.
Re: Net::SSH::Any does not return output for few specific commands
by salva (Canon) on Apr 02, 2013 at 16:28 UTC
    Add error checks:
    $ssh = Net::SSH::Any->new($hostname, user => $username, password => $p +assword); $ssh->error and die "unable to connect to remote host: " . $ssh->error +; $out = $ssh->capture(“who am I”); $ssh->error and die "remote command failed: " . $ssh->error; print $out;

      Thanks Salva for quick reply. I added error check but no break. The code is connecting to the host it did not die and the $ssh->error is printing 0.

        My problem got solved. Instead of "who am i" I used "whoami" and i got the output.

        I even tried "who -am -u" but it did not work but i could not find out why capture doesn't return output for those commands.

        Thanks anyways.