#!/usr/bin/perl
$command = "SetBaseStationParam(\\\"PDP_ACTIVATION_REJECT\\\",0);"
system (boa.exp $command);
boa.exp脚本将此命令登录到linux机器并执行脚本。
# /Usr/bin/expect
set timeout 5
set arg1 [lindex 0]
spawn ssh root@10.xx.xx.xx
expect "password:"
send "pass\r"
expect "$"
send "$arg1\r"
expect "$"
但是这个脚本正在删除命令中的第一个双引号并将其打印为
输出
SetBaseStationParam(\PDP_ACTIVATION_REJECT",0);
预期输出
SetBaseStationParam("PDP_ACTIVATION_REJECT",0);
如果有任何解决方案,请告知我们
答案 0 :(得分:6)
使用双反斜杠时,它会转义反斜杠,因此转义引号的正确方法是\"
。
但是,更好的解决方案是使用qq()
。它可以与各种字符一起用作分隔符,例如|
:
$command = qq|SetBaseStationParam("PDP_ACTIVATION_REJECT",0)|;
或者在您的情况下,甚至使用单引号
$command = 'SetBaseStationParam("PDP_ACTIVATION_REJECT",0)';
你应该知道不使用
use strict;
use warnings;
确实是一个非常糟糕的主意。