【发布时间】:2012-03-10 00:32:51
【问题描述】:
我有这个代码:
$script = "console.log(\"It works!\");";
$output = qx/ssh user@123.123.123.123 $script | interpreter/;
它应该通过解释器运行$script并将其写入$output。问题是它不起作用。如何正确转义字符?
【问题讨论】:
-
你想在远程主机还是本地主机上运行“解释器”?
-
我已经在两个虚拟机之间通过 ssh 建立了无密码连接。我正在调用远程主机上的解释器,在本例中为节点。
-
您的命令不太合理。现在您正在运行
ssh ... | interpreter,也就是说,您正在将ssh的输出传送到本地主机的interpreter。如果你想在远程主机上运行interpreter,那么你需要把它放在ssh的参数里面;类似qx/ssh user@123.123.123.123 '$script | interpreter'。 -
实际上,在所有情况下,您都无法安全地处理反引号。您必须使用带有多个单独参数的管道打开。