这应该很简单,我之前在某个脚本中做过这件事,但我找不到我的示例(或相当的示例),今天这个问题让我快要疯了。(即使我没有包含脚本的其余部分,这也是用于脚本内部使用,而不是交互式的。)
cat testfile | grep -e eth0
返回:
eth0 123.45.67.8/23 u/u Internet - Cable WAN
最终结果是我需要为每个元素设置变量。即,就像我手动完成的那样:
INTF = "etho"
IPADDR = "123.45.67.8/23"
STS = "u/u"
DESC = "Internet - Cable WAN"
我认为我可以做类似于这样的事情:
cat testfile | grep -e eth0 | awk '{print $2}' | xargs read IPADDR
或者
cat testfile | grep -e eth0 | cut -d " " -n2 | read IPADDR
但是我尝试过的所有方法都没有带来快乐......我的路障是什么(头疼)?
编辑以补充-脚本比仅抓取一个IP更为复杂,因此我的示例会导致人们得出这样的结论。它是基于cron的脚本,每分钟运行一次,它通过8个接口运行循环,并在特定的警报条件下发送消息。当我使用硬编码变量运行其余部分的脚本时,它能正常工作,我只是被问到了让我困惑的部分。
IPADDR=$(cat outputfile | grep -e eth0 | awk '{print $2}')
? - Néstor Lucas Martínezread INTF IPADDR STS DESC <<< \
cat testfile | grep -e eth0`` - Néstor Lucas Martínez