通过SSH传递脚本和字符串

时间:2015-03-31 10:33:53

标签: linux perl ssh ibm-midrange

我正在尝试通过SSH运行带字符串值的perl脚本,但我无法让它工作。

我的脚本如下所示:

ssh user @ linux /home/user/script.pl“value1 value2 value3”

脚本将执行但由于某种原因,传递给它的唯一值是value1而不是整个字符串值。它认为这是因为双引号在通过SSH传输时会被丢弃?

任何人都可以对此有所了解吗?干杯。

2 个答案:

答案 0 :(得分:1)

问题是初始引号集是由用于调用命令的shell扩展的,所以实际发生的是:

ssh user@linux /home/user/script.pl "value1 value2 value3"

结束为:

/home/user/script.pl value1 value2 value3

从远程系统运行时。

您需要转义引号,以便在远程端进行解释之前不会在本地解析它。

要转义引号,您可以执行以下操作:

ssh user@linux /home/user/script.pl \"value1 value2 value3\"

答案 1 :(得分:-1)

通常更容易将更大的值(例如STDIN)传递到远程脚本中。这样,它就不会受到命令行解析器或shell的攻击或破坏。