【发布时间】:2011-04-17 04:45:29
【问题描述】:
我正在尝试编写一个 perl 脚本,将其标准输入重定向到远程机器,同时将远程机器的标准输出重定向到其标准输出:
callingProgram <--> myScript <--> sshTunnelToRemote
请参阅 this question 和 bdonlan 的答案以了解脚本的目的。
首先我尝试使用 IPC 库中的 open2() 函数,但由于 here 描述的原因,这似乎不是一个好方法,我什至没有得到一个简单的 grep 命令工作。
我的第二个想法是使用 Net::SSH::Perl 或 Expect 库,但它们在应该执行脚本的机器上不可用,我无法在那里安装库。
所以我的问题是什么是实现我想要的简单方法?使用 [ba]sh 甚至 C++ 的解决方案也是可能的。目标平台是 Solaris 10。
【问题讨论】:
-
解释为什么/是什么让你认为你“不能在那里安装库”。
-
我试过了。安装程序尝试在我没有写入权限的位置创建文件,因此失败。
-
隧道用于套接字。 open2 不创建套接字。您想创建一个套接字,将其连接到隧道,然后将该套接字复制到 STDIN 和 STDOUT。