期待脚本 - awk 说变量不存在
Expect Script - awk say variable doesn't exist
#!/usr/bin/expect -f
set name [lindex $argv 0]
send "grep $name /usr/local/bin/c | awk '{print }' | awk '{print substr(,10)}'\r"
spawn grep $name /usr/local/bin/c | awk '{print }' | awk '{print substr(,10)}'
我试过用“\”转义引号和特殊符号。它不起作用。我也试过发送和产卵。不起作用。如果我 运行 只是行上的 grep...... 命令,它 returns 我需要的。任何有关如何从我的期望文件中将其获取到 运行 的帮助都会很棒。谢谢
单引号在expect中没有特殊含义。使用大括号代替同样的效果:
spawn awk -v n="perferx" {[=10=] ~ n {print substr(,10,5)}} /usr/local/bin/c
# .......................^..............................^
No substitutions are performed on the characters between the braces
此外,如果没有看到您对输出做了什么,也许您不需要 spawn
set output [exec awk -v n="perferx" {[=11=] ~ n {print substr(,10,5)}} /usr/local/bin/c]
现在,您可以对 $output
进行简单的字符串解析
#!/usr/bin/expect -f
set name [lindex $argv 0]
send "grep $name /usr/local/bin/c | awk '{print }' | awk '{print substr(,10)}'\r"
spawn grep $name /usr/local/bin/c | awk '{print }' | awk '{print substr(,10)}'
我试过用“\”转义引号和特殊符号。它不起作用。我也试过发送和产卵。不起作用。如果我 运行 只是行上的 grep...... 命令,它 returns 我需要的。任何有关如何从我的期望文件中将其获取到 运行 的帮助都会很棒。谢谢
单引号在expect中没有特殊含义。使用大括号代替同样的效果:
spawn awk -v n="perferx" {[=10=] ~ n {print substr(,10,5)}} /usr/local/bin/c
# .......................^..............................^
No substitutions are performed on the characters between the braces
此外,如果没有看到您对输出做了什么,也许您不需要 spawn
set output [exec awk -v n="perferx" {[=11=] ~ n {print substr(,10,5)}} /usr/local/bin/c]
现在,您可以对 $output
进行简单的字符串解析