无需管道即可获取单个IP地址
Get single IP address without pipe
Centos7
使用 bash
。我需要设置一个环境变量,$IP
。但是,设置变量的命令是通过公司系统完成的,该系统期望 |
作为变量之间的分隔符(即,我将以 myIP=something|myOtherIP=something_else|envVar3=17
形式向系统传递一个列表)。
我正在计划 IP 地址始终为内部 (10.x.x.x) 的用例。是否有任何命令可以 return 仅我关心的一个 IP 地址,而无需使用管道?
hostname -i
return地址错误(不是以 10. 开头)。 hostname -I
包含正确的地址,但它在七个地址列表中排在第二位。我可以使用 hostname -I
或 ifconfig
轻松获得 IP,但它涉及管道到 grep,然后使用正则表达式找到以 10 开头的 IP。我怀疑是否有任何简单的方法(老实说,我怀疑这是可能的),但我想我还是会问。
是这样的吗?
grep -o "10[^ ]*"<<<`hostname -I`
作为 abhishek phukan 答案的替代方案,如果您总是想要列表中的第二个 IP - 您可以使用:
cut -f2 -d' ' <<< `hostname -I`
感谢 abhishek 的精彩回答!
Centos7
使用 bash
。我需要设置一个环境变量,$IP
。但是,设置变量的命令是通过公司系统完成的,该系统期望 |
作为变量之间的分隔符(即,我将以 myIP=something|myOtherIP=something_else|envVar3=17
形式向系统传递一个列表)。
我正在计划 IP 地址始终为内部 (10.x.x.x) 的用例。是否有任何命令可以 return 仅我关心的一个 IP 地址,而无需使用管道?
hostname -i
return地址错误(不是以 10. 开头)。 hostname -I
包含正确的地址,但它在七个地址列表中排在第二位。我可以使用 hostname -I
或 ifconfig
轻松获得 IP,但它涉及管道到 grep,然后使用正则表达式找到以 10 开头的 IP。我怀疑是否有任何简单的方法(老实说,我怀疑这是可能的),但我想我还是会问。
是这样的吗?
grep -o "10[^ ]*"<<<`hostname -I`
作为 abhishek phukan 答案的替代方案,如果您总是想要列表中的第二个 IP - 您可以使用:
cut -f2 -d' ' <<< `hostname -I`
感谢 abhishek 的精彩回答!