TCL(预期):无法读取 "NF"(来自 awk):没有这样的变量

TCL (expect): can't read "NF" (from awk): no such variable

正在尝试从文件中获取第一行的最后一个字。不确定为什么要执行以下命令:

send "cat moo.txt | grep QUACK * | awk 'NF>1{print $NF}' meow.txt >> bark.txt "

收到错误消息 can't read "NF": no such variable

我可以 运行 awk 'NF>1{print $NF}' meow.txt >> bark.txt 片段在我的机器上运行得很好。然而,当它在我的 expect 脚本中 运行s 时,它给了我那个错误。

有人知道为什么 expect 不能识别 awk 内置变量吗?

我认为您的脚本在通过 send 发送该命令之前试图用它的值扩展变量 $NF。 $NF 未在您的 shell 中设置,因为它是 awk 的内部设置,awk 还没有机会 运行 所以它犹豫不决。

尝试转义该变量,使其被视为字符串文字,awk 将能够在 awk 到 运行 的时候使用它:

send "cat moo.txt | grep QUACK * | awk 'NF>1{print $NF}' meow.txt >> bark.txt "