ping: ./ipsweep.sh.105: 不明な名前またはサービス [閉じる]

ping: ./ipsweep.sh.105: 不明な名前またはサービス [閉じる]

#パスワード:

#!/bin/bash
for ip in `seq 100 110`; do
    ping -c 1 $0.$ip | grep "64 bytes" | cut -d " " -f 4 | tr -d ":" &
done

#注文する:

./ipsweep.sh 192.168.0

#結果:

ping: ./ipsweep.sh.105: Name or service not known

答え1

$0スクリプトのパス名です。$1最初のパラメータです。

生成するコマンドは次のとおりです。

ping -c 1 ./pingsweep.sh.100

答え2

以下は、目的のタスクを実行する簡単なスクリプトです。ニーズに合わせて変更できます。

#!/bin/bash
        
ping_hosts () 
{ 
    network="192.168.0"
    start=$(date +"%d-%m-%Y-%T")
    local s=$1
    local e=$2
    printf '%s\n\n' "Pinging $network"
    for ((i=s; i<=e; i++))
    do
        if ping -s 64 -c 1 -W 1 ${network}.${i} >/dev/null; then
            ((count1 += 1))
            printf '%s\n' "${network}.${i} is UP"
        else
            ((count2 += 1))
            printf '%s\n' "${network}.${i} is DOWN"
        fi
    done
    end=$(date +"%d-%m-%Y-%T")
    printf '%s\n' "Start:$start"
    printf '%s\n\n' "End**:$end"
    printf '%s UP and %s DOWN\n' "$count1" "$count2"
}
if (($# < 2)); then
    printf '%s\n' "Use start and end range i.e:  .${0##*.} 100 110"
    exit 1
else
    ping_hosts $1 $2
fi

ieでスクリプトを実行可能にすることができます。

chmod u+x ping_hosts

引数なしで実行すると、次のものが生成されます。

$> ./ping_host 
Use start and end range i.e:  ./ping_host 100 110

次のように実行すると:

$> ./ping_host 100 110
Pinging 192.168.0

192.168.0.100 is UP
192.168.0.101 is DOWN
192.168.0.102 is UP
192.168.0.103 is DOWN
192.168.0.104 is UP
192.168.0.105 is DOWN
192.168.0.106 is DOWN
192.168.0.107 is DOWN
192.168.0.108 is DOWN
192.168.0.109 is DOWN
192.168.0.110 is DOWN
Start:24-08-2021-22:55:59
End**:24-08-2021-22:56:07

3 UP and 8 DOWN

関連情報