如何使用变量在TCL列表中执行AWK?

时间:2015-11-09 21:42:36

标签: shell awk tcl

我需要通过TCL脚本从终端运行一些命令。这个TCL脚本工作正常。

set cmd_list [list {mkdir testdir} {cd testdir} ]
set dataportInterface "eth0"
lappend cmd_list [list ifconfig -a | grep -m 1 $dataportInterface]

但是,只要我添加awk命令,它就会开始失败。 错误是“失败:关闭括号后的额外字符”。

lappend cmd_list [list ifconfig -a | grep -m 1 $dataportInterface | awk 'BEGIN {FS="[:]"} { print $1 } END {}' | xargs -t ethtool -S]

我尝试了几种可能性,但没有一种可行。例如,如果我尝试

lappend cmd_list {  }

然后,$dataportInterface的值eth0未被采用。

我尝试在所有特殊字符\前加: " ' [ {并抛出错误$1 not recognized。我将awk命令放在{{中括号,但也没有用。(error: doesn't recognize {{awk

解决这个问题的正确方法是什么?为什么?

1 个答案:

答案 0 :(得分:1)

单引号对Tcl没有意义 - 尝试将'...'更改为{...}