Bash 获取没有管道的单个IP地址

Bash 获取没有管道的单个IP地址,bash,ip,hostname,ifconfig,Bash,Ip,Hostname,Ifconfig,Centos7使用bash。我需要设置一个环境变量$IP。但是,设置变量的命令是通过一个公司系统完成的,该公司系统期望|作为变量之间的分隔符,即,我将以myIP=something | myOtherIP=something | envVar3=17的形式向系统传递一个列表 我正在计划一个IP地址始终为内部10.x.x.x的用例。是否有任何命令可以只返回我关心的一个IP地址,而不使用管道 主机名-我返回的地址不以10开头。。hostname-I包含正确的地址,但它是七个地址中的第二个。我可以很容

Centos7使用bash。我需要设置一个环境变量$IP。但是,设置变量的命令是通过一个公司系统完成的,该公司系统期望|作为变量之间的分隔符,即,我将以myIP=something | myOtherIP=something | envVar3=17的形式向系统传递一个列表

我正在计划一个IP地址始终为内部10.x.x.x的用例。是否有任何命令可以只返回我关心的一个IP地址,而不使用管道

主机名-我返回的地址不以10开头。。hostname-I包含正确的地址,但它是七个地址中的第二个。我可以很容易地用hostname-I或ifconfig获取IP,但它涉及到管道到grep,然后使用regex找到以10开头的IP。老实说,我怀疑有什么简单的方法,我怀疑这是可能的,但我想我还是会问的

像这样的

grep -o  "10[^ ]*"<<<`hostname -I`

如果您始终想要列表中的第二个IP,则可以使用以下选项替代来自的答案:

cut -f2 -d' ' <<< `hostname -I`

感谢阿披舍克伟大的回答

您是否可以在使用管道的一个步骤中获取IP变量,然后在单独的步骤中传入该列表,或者您是否需要将某些内容作为命令传递,以最终打印所需的IP?是否总是第二个?:。是的,如果Ip始终处于第二位,这也是一个很好的解决方案。awk会更好,但我想,如果空间不均匀,这可能会失败