我正在尝试在 awk 中编写一个脚本来升级某些设备上的固件。我正在尝试使用 awk 读取节点列表,但由于某种原因它无法找到并执行 awk 命令,并且我不断收到错误
执行时命令名称“awk”无效
“awk {{'NR==$i' test.txt}}”
(“for”正文第 2 行)
。我对expect中的脚本编写很陌生,但是我看到其他人在expect中执行awk,我不知道为什么它说awk是一个无效的命令名。
#!/usr/bin/expect -f
set logfile [open logfile.txt "w"]
#set len [awk 'END {print NR}' test.txt]
set timeout -1
spawn $env(SHELL)
match_max 100000
for {set i 1} {$i <= 2} {incr i 1} {
set node [awk {{'NR==$i' test.txt}}]
send -- "./myconsole\r"
expect "*Option-> "
send -- "4\r"
expect "*Firmware upgrade was successful for node"
puts $logfile "Node ID $node success"
}
expect "*Option-> "
send -- "^D^C\r\r"
close $logfile
有人知道为什么 awk 无效吗?
最佳答案
您必须使用[exec awk ...]
关于awk - 无法在expect脚本中使用awk : invalid command name "awk",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20083386/