eth1のIPアドレスを取得し、それをゲートウェイとして使用するために、プロシージャ内で次のコードを使用しています。もう1つ必要なのは、この変数(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"
は内部gw:0を返します。
誰か私が間違っていることを教えてもらえますか?変数$my_gw_ip_addressが0であるのはなぜですか?