1
我正在使用expect腳本來執行命令,並希望從稍後打算在腳本中使用的輸出中提取一個數字。如果我只是在我的腳本中使用以下命令期望:從命令的輸出中提取負數
$expect_out(buffer)
我得到它具有命令如下以及基於我的互聯網我修改劇本上看到的例子,實際輸出
# some_command | awk '{print $2}'
-2520
使用正則表達式來只提取號碼,但它似乎沒有工作時:
set prompt "(\\\$|#) $"
... Login code goes here
expect -re $prompt
send "some_command | awk '{print \$2}'\r" --> Prints a negative number (not floating) i.e -2520
expect -re {"^-[0-9]\d*"}
set num $expect_out(0,string)
puts "Result : $num"
send "exit\r"
出於某種原因,我不能提取從緩衝區的數目-2520。我得到的輸出是:
# Result : #
我在做什麼錯?
您需要刪除'「'從正則表達式:'期待-re {?^ - \ d +}' – komar
@komar - '{^ - ?\ d +}'不起作用。請參閱https://stackoverflow.com/questions/40498940/expect-script-not-sending-commands-after-successful-ssh-login/40499422#40499422 – pynexj