Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/google-chrome/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
TCL(expect):can';“我不读”;NF";(来自awk):没有此类变量_Awk_Tcl_Expect - Fatal编程技术网

TCL(expect):can';“我不读”;NF";(来自awk):没有此类变量

TCL(expect):can';“我不读”;NF";(来自awk):没有此类变量,awk,tcl,expect,Awk,Tcl,Expect,试图从文件中获取第一行的最后一个字。不确定为什么要使用以下命令: send“cat moo.txt | grep QUACK*| awk'NF>1{print$NF}'meow.txt>>bark.txt” 正在获取错误消息无法读取“NF”:没有此类变量 我可以在我的机器上运行awk'NF>1{print$NF}'meow.txt>>bark.txt代码片段。然而,当它在我的expect脚本中运行时,它给了我这个错误 有人知道为什么expect无法识别awk内置变量吗?我认为您的脚本在通过sen

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

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

正在获取错误消息
无法读取“NF”:没有此类变量

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


有人知道为什么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 "

问题的根源在于内部单引号在这里没有特殊意义。在shell中也是如此:而
'$FOO'
表示文本
$FOO
(美元符号,F,O,O)。如果我们把它放在双引号中:
“'$FOO'
,单引号现在只是普通字符:这表示一个单引号,
FOO
变量的值,单引号。Tcl与单引号等价的是
{
大括号
}