试图将awk o / p分配给shell脚本中的变量

时间:2015-03-01 03:34:33

标签: bash shell awk

需要帮助awk  试图将awk o / p分配给变量;得到以下错误。

var=  $(awk '{print $2;next;}' <<< "$OLD_ADDR")
        echo $var    

Where ...OLD_ADDR = "gateway 192.168.1.1"


 ******** Error from console log using set -x *******

    +++ awk '{print $2;next;}'
    ++ var=
    ++ 192.168.1.21
    -bash: 192.168.1.21: command not found
    ++ echo

谢谢你, pisignage@ariemtech.com

1 个答案:

答案 0 :(得分:1)

空间很重要。

考虑:

var=  $(awk '{print $2;next;}' <<< "$OLD_ADDR")

这告诉shell将变量var设置为空,然后运行awk语句打印出的任何命令。在您的情况下,该命令是192.168.1.1。由于shell在PATH上找不到这样的命令,因此会生成错误:

-bash: 192.168.1.21: command not found

解决方案是写:

var=$(awk '{print $2;next;}' <<< "$OLD_ADDR")

相反,这会将awk命令的输出分配给var

在shell中进行赋值时,等号的两边都不允许有空格。