我在一个过程中使用以下代码来获取 eth1 的 IP 地址并将其用作网关。我想要的另一件事是在用户范围之外使用这个变量(IP 地址)。
global my_gw_ip_address
expect "# "
send "ifconfig eth1 | grep 'inet addr:' | cut -d: -f2 | awk '{print \$1}' > prod_ip_base.txt\r"
expect "# "
send " my_internal_gw=`cat prod_ip_base.txt`\r"
expect "# "
send " echo \$my_internal_gw\r"
expect "root@cnode-pp81:~ "
set checking_buffer_out $expect_out(buffer)
regexp {(?:\d+\.){3}\d+} $checking_buffer_out my_gw_ip_address
puts "internal gw: $my_gw_ip_address\n"
该函数的输出是:
1. 该行send " echo \$my_internal_gw\r"
返回正确的 IP 地址 192.168.138.50
2. 该行puts "internal gw: $my_gw_ip_address\n"
返回 internal gw: 0。
谁能告诉我我做错了什么?为什么变量 $my_gw_ip_address 为 0?