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 "
正在尝试从文件中获取第一行的最后一个字。不确定为什么要执行以下命令:
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 "