在if循环中ping输出

时间:2013-01-18 09:53:20

标签: bash ping

使用下面的脚本我希望能够获得在其末尾输出的IP地址然后ping它。

#!/usr/local/bin/bash

echo -n "Enter server number:"
read userinput

lookupip="d $userinput"

if [[ $userinput -lt 0 || $userinput -gt 9999 ]] #checks that the input is within the desired range
 then
   echo "Input outside acceptable range."
 else

#grep gets just the IP address

$lookupip | grep -E -o '(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)' | sed '1 ! d'

我无法弄清楚如何使用输出执行此操作:

> or >> filename | xargs ping

在grep命令周围使用“或”(或者将它放在一个变量中:

ipgrep=$(grepcommand)
ipgrep=`grepcommand`

或变量似乎不起作用。

1 个答案:

答案 0 :(得分:0)

Derp,我只需要添加:

| xargs ping -c 1

后:

sed '1 ! d'