首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Linux脚本,它从一个文件中传递多个IP地址。

问Linux脚本,它从一个文件中传递多个IP地址。
EN

Stack Overflow用户
提问于 2013-12-17 09:05:45
回答 6查看 48.5K关注 0票数 0

我有一个包含以上格式的多个主机和IP的文件:

代码语言:javascript
复制
alpha, 192.168.1.1
beta,  192.168.1.2
gamma, 192.168.1.3

我正在尝试创建一个脚本,上面写着:

"Pinging主机名α“

代码语言:javascript
复制
ping 192.168.1.1

跳到列表中的下一个ip。我不想要整个剧本,只是一些建议。

谢谢,亚历克斯

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2013-12-17 13:40:43

如果在输入字段分隔符中添加逗号,它将有助于解析行:

代码语言:javascript
复制
IFS=$IFS,
while read name ip; do
    echo -n "Pinging hostname $name..."
    ping -c2 "$ip" &>/dev/null && echo success || echo fail
done < /tmp/hosts
票数 4
EN

Stack Overflow用户

发布于 2013-12-17 09:14:17

我和read一起读过台词。您可能还想给ping一个选项,告诉它给ping做了多少次。例如,在大多数Linux系统中,默认的做法是永远使用ping,这在您的情况下似乎不太适用。

票数 2
EN

Stack Overflow用户

发布于 2015-03-02 16:03:11

你可以用AWK

代码语言:javascript
复制
$ awk '{print "Pinging hostname "$1; system("ping -c 3 "$2) }' ips
Pinging hostname alpha,
PING 192.168.1.1 (192.168.1.1) 56(84) bytes of data.

如果逗号对您很重要,也可以删除该逗号:

代码语言:javascript
复制
$ awk '{sub(/,/,"");print "Pinging hostname "$1; system("ping -c 3 "$2) }' ips
Pinging hostname alpha
PING 192.168.1.1 (192.168.1.1) 56(84) bytes of data.
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20629927

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档