Linux 引号取消bash中传递给变量的out命令

Linux 引号取消bash中传递给变量的out命令,linux,bash,shell,unix,pipe,Linux,Bash,Shell,Unix,Pipe,我试图运行一个命令,获取我当前的IP地址(或多个地址),并将其保存到一个变量中,以便我可以在屏幕上看到。我想这样做,这样我就可以在脚本中运行它,并在循环中使用变量 userip='ifconfig | grep "inet addr:" | cut -d: -f2 | awk '{print $1}'' echo $userip 每次我运行这个命令时,基本上都会混淆语音标记,因此无法运行整个命令 它真的只是在单引号中添加了'ifconfig | grep“inet addr:| cut-

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

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

echo $userip
每次我运行这个命令时,基本上都会混淆语音标记,因此无法运行整个命令

它真的只是在单引号中添加了
'ifconfig | grep“inet addr:| cut-d:-f2 | awk'


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

你的问题是你的单引号不正确,它们应该是严重的重音,所以,不是“而是”

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


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

不能在单引号字符串中嵌入单引号(
“{print$1}”
)。事实上,您自己问题的语法突出显示可以作为线索。因此,不运行整个命令执行
echo
不会运行
ifconfig
命令。您想在这里做什么?我尝试了混合双引号和单引号。我的echo命令只是输出结果,希望我的IP地址会出现。@robot420您的意思是将命令的结果分配给
userip
?在这种情况下,
$()
是您想要的,而不是单引号。@robot420这是一个很好的例子,说明了您如何更快地得到正确答案(甚至自己找到答案)如果你从一开始就正确地描述了这个问题!或者更好:
$()
太棒了,谢谢,我实际上从未使用过反引号。加油,伙计。
userip=`ifconfig | grep "inet addr:" | cut -d: -f2  |  awk '{print $1}'`