【发布时间】:2011-06-24 13:15:47
【问题描述】:
我在机器 A 上运行 bash shell,通过 ssh 在机器 B 上运行 perl shell,通过 ssh 向机器 C 请求命令结果。我无法在机器 A 上获得 tty 中显示的结果...
这里是几千行代码的总结:
1) 机器“A”上的 bash shell “A”:NOK
...
ssh -p port userb@machineB "scriptB.pl"
...
2) perl scriptB.pl" 在机器 "B" 上:OK
...
# my $user = qx|$ssh_cmd| if ($ssh_connection_ok);
my $user = qx#$ssh_cmd# if ($ssh_connection_ok);
...
3) 机器“C”上的 bash 命令 $ssh_cmd:OK
cat /my_dir/my_file | grep this_user | head -n1 | cut -d: -f1 | tr
独立运行,step2 和 step3 显示预期结果,但从机器 A 运行 scriptB.pl 不会返回预期数据。我现在不使用 Net::SSH2 但 qx。可能是客户端 ssh 设置中的问题。
谢谢。
【问题讨论】:
-
是的,$?在机器 B 上运行 scriptB 时返回 0,但从机器 A 运行时返回 65280。我该如何解释这个..?我还在机器 B 上本地运行了 scriptB,并从那里获得了预期值。以及在 machineC 上运行 cmd。我还尝试在 perl shebang 之后添加 $|=1,没有差异。