引号标记在bash中取消命令以传递给变量

时间:2015-09-15 18:51:43

标签: linux bash shell unix pipe

我正在尝试运行一个抓取当前IP地址(或地址)的命令并将其保存到变量中,以便我可以在屏幕上看到。我想这样做,以便我可以在脚本中运行它并在循环中使用该变量。

userip='ifconfig | grep "inet addr:" | cut -d: -f2  |  awk '{print $1}''

echo $userip

每次我运行此命令时,它基本上会使语音标记混淆,从而无法运行整个命令。

单引号中只有'ifconfig | grep "inet addr:" | cut -d: -f2 | awk '

任何建议都非常有用,谢谢。

2 个答案:

答案 0 :(得分:0)

你遇到的问题是你的单引号是不正确的,它们应该是严肃的重音,而不是'而是`

答案 1 :(得分:0)

检查隔离IP地址的命令字符串是否包含在后引号中。后引号`不同于单引号'或双引号'(假设命令行适用于您的操作系统)。因此:

userip=`ifconfig | grep "inet addr:" | cut -d: -f2  |  awk '{print $1}'`

后引号会导致执行命令并返回结果。在大多数键盘上,反引号位于tilda~下方。 (不确定后面的引用是否出现在我的答案中。只是习惯了Stack Exchange。)