我想在使用 Expect 脚本期间提取准确的数字。看看这段代码:
spawn /opt/nsr/nsr_adv_config.sh create
expect "*Your selection:*"
puts "[ exec echo '$expect_out(buffer)' | grep "Generic (Other)" | sed 's/[[:blank:]]*//' | sed 's/ .*//' ]"
我从nsr adv config.sh create的输出现在是:
Please select one (number) from the list below.
1 C-NTDB DSA node - Apertio database
2 C-NTDB DBM node - Hypersonic database
3 C-NTDB PGW node - CommandLog files
4 IS-Linux (ISL) - Linux Installation Server for C-NTDB nodes
5 Generic (Other)
-> Your selection:
我想要的是在Generic (Other)之后获取提取的数字,然后用它作为Your selection发送,所以我的首选输出只是5。在 bash 上,我的 grep 和 sed 工作正常,但我找不到如何使其与 Expect 的 exec 命令一起工作。
我现在收到的一个错误是:
invalid command name ":blank:"
while executing
":blank:"
invoked from within
"[:blank:]"
invoked from within
"exec echo '$expect_out(buffer)' | grep "Generic (Other)" | sed 's/[[:blank:]]*//' | sed 's/ .*//' "
invoked from within
"puts "[ exec echo '$expect_out(buffer)' | grep "Generic (Other)" | sed 's/[[:blank:]]*//' | sed 's/ .*//' ]""
(file "./dev.exp" line 16)
我已经尝试过治疗前任。[ 和 ] 作为特殊字符并将它们与 \ 一起使用,但它没有帮助。