我必须将此命令的返回存储到数组中 我试过这个:
my_array=( $(/sbin/ifconfig | grep 'inet addr:' | cut -d: -f2 | awk '{ print $1}' | grep -v '127.0.0.1'))
但它给出了以下错误:
/ bin:是一个目录
答案 0 :(得分:0)
您可以删除下面的括号。您还可以使用ip命令,它的新版本以及比ifconfig更强大的功能。
my_array=$(ip addr show | grep -Po 'inet \K[\d.]+' | grep -v 127.0.0.1)
答案 1 :(得分:0)
在我的GNU bash 4.4.0(1)中,ifconfig没有给我inet addr:但只是这样:
inet 10.0.2.15 netmask 255.255.255.0 broadcast 10.0.2.255 inet 127.0.0.1 netmask 255.0.0.0
在任何情况下,您收到的错误对我都没有意义。
我可以获得结合grep&的IP地址awk这样:
sbin/ifconfig | grep -v "127.0.0.1" |grep 'inet ' |awk -F" " '{print $2}'
(awk -F“”:Field Seperator。我的情况下的Field Seperator是空格。)
这也适用于我,因为127.0.0.1到了最后:
/sbin/ifconfig |grep -m1 'inet '| awk -F" " '{print $2}
(grep -m1 =首场比赛后停止)
PS:如果您计划附加数组,则需要使用my_array + =(...)