当我将变量$local_ntwk_ao_vpn ("X0子网“)传递给perl脚本时,它只接受了"X0”并丢失了“X0”部分。我试图像下面这样避开双引号,但还是没起作用。任何帮助都是非常感谢的。
#!/usr/bin/perl
use Expect;
#Assume the first 20 args are OK
my $local_ntwk_ao_vpn = $ARGV[20]; # <-----"X0 Subnet"
# Telnet into the remote firewall
my $expect = Expect->new();
$expect->spawn("telnet 10.100.100.100 6025");
$expect->send("\n");
sleep(3);
$expect->expect( 10, 'User:' );
$expect->send("aUser\n");
$expect->expect( 10, 'Password:' );
$expect->send("password\n");
$expect->expect( 5, '>' );
$expect->send("configure\n");
$expect->expect( 5, '#' );
$expect->send("vpn policy site-to-site TESTVPN\n");
$expect->expect( 5, '#' );
$expect->send("network local name \"$local_ntwk_ao_vpn\"\n"); # <-- Still doesn't work here.
$expect->expect( 5, '#' );
$expect->send("exit\n");
$expect->send("end\n");
$expect->soft_close();错误日志:
(edit-site-to-site[TESTVPN])# network local name "X0"
% Error encountered at '^' marker:
network local name "X0"
^^M
% Error: No matching command found.
(edit-site-to-site[TESTVPN])# exit想要的命令:
(edit-site-to-site[TESTVPN])# network local name "X0 Subnet"发布于 2016-11-07 00:27:45
我相信你对$ARGV[20]包含X0 Subnet的看法是错误的。它似乎只包含X0。
你用过
script.pl ... X0 Subnet ...当你应该用
script.pl ... 'X0 Subnet' ...https://stackoverflow.com/questions/40454969
复制相似问题