【发布时间】:2011-03-18 17:14:04
【问题描述】:
我可以很好地运行这个命令,得到我想要的输出:
ifconfig eth0 | grep HWaddr | awk '{print $5}'
但是,当我将命令设置为变量并打印变量时,出现错误:
CASS_INTERNAL=`ifconfig eth0 | grep HWaddr | awk '{print \$5}'`
$CASS_INTERNAL
my internal xxx ip: command not found
奇怪的是——我的内部 IP 居然出现了。我该如何解决这个问题而不会出错?没关系,但我使用的是最新版本的 Ubuntu。
【问题讨论】:
-
在命令周围使用反引号(即`)实际上会执行它。因此,您在第一行执行命令并将结果存储在 CASS_INTERNAL 中。正如 Wikken 所说,您只需使用“echo”返回结果。另一种方法是将命令文本存储在 CASS_INTERNAL 中(使用双引号 - 不是反引号)并仅使用 $CASS_INTERNAL 执行它。在您的示例中,您在第一行使用反引号执行它,然后在第二行使用 $CASS_INTERNAL 再次执行它。
标签: bash scripting awk ifconfig