Olyan fájlba próbálok írni egy bash parancsfájlt, amely futtatásakor elkezdené pingelni a gazdagépet, amíg elérhetővé válik , amikor a gazdagép elérhetővé válik, futtat egy parancsot, és leállítja a végrehajtást, megpróbáltam írni egyet, de a szkript addig folytatja a pingelést, amíg a számlálás véget nem ér,
 Ráadásul ezt a folyamatot háttérbe kell helyeznem, de ha a szkript a dollár ($) aláírással továbbra is az előtérben fut, 
#!/bin/bash ping -c30 -i3 192.168.137.163 if [ $? -eq 0 ] then /root/scripts/test1.sh exit 0 else echo “fail” fi Válasz
Ezt használnám, egy egyszerű egysoros:
while ! ping -c1 HOSTNAME &>/dev/null; do echo "Ping Fail - `date`"; done ; echo "Host Found - `date`" ; /root/scripts/test1.sh  Cserélje le a HOSTNAME azzal a gazdagéppel, amelyet megpróbál pingelni. 
Hiányzott a háttérbe helyezésről szóló rész, ezt a sort írtam ilyen kagylóba:
#!/bin/sh while ! ping -c1 $1 &>/dev/null do echo "Ping Fail - `date`" done echo "Host Found - `date`" /root/scripts/test1.sh És háttérképként a következő módon futtatná:
nohup ./networktest.sh HOSTNAME > /tmp/networktest.out 2>&1 &  Ismét cserélje le a HOSTNAME azzal a gazdagéppel, amelyet pingelni próbálsz. Ebben a megközelítésben a gazdagépnevet argumentumként adja át a shellscript-nek. 
Csak általános figyelmeztetésként, ha a gazdagép nem működik, akkor ezt a szkriptet folyamatosan pingelni fogja a háttérben, amíg meg nem öli vagy a gazdát megtalálják. Tehát ezt szem előtt tartanám, amikor ezt futtatja. Mivel elfelejtheti a rendszer erőforrásait, ha erről megfeledkezik.
Megjegyzések
Válasz
A “-c 30” paraméterek átadásával ping, megpróbál 30 pinget és stopot. Utána ellenőrzi, hogy a parancs sikeres-e. Szerintem a legjobb, ha egy ciklust készítünk, amely egy pinget tartalmaz, és ellenőrizzük, hogy ez a ping sikeres-e. Valami ilyesmi:
while true; do ping -c1 google.com if [ $? -eq 0 ] then /root/scripts/test1.sh exit 0 fi done Ha továbbra is az előtérben futva azt jelenti, hogy még mindig a terminálra nyomtat, akkor átirányíthatja a stdin-t és az stdout-ot a / dev fájlba / null.
Megjegyzések
- A felszólítás feloldásával, hogy mással tudjak dolgozni, tnx segítségért
Válasz
 Régi bejegyzés, de javaslatként a -w beállítást használhatja a ping kerülje a hurkot. Például 
ping -w 30 -c 1 host 30 másodpercig próbálkozik, egy másodpercenkénti pingeléssel (az alapértelmezett pingnek 1 másodperces intervalluma van a pingek között), és kilép az első sikeres pingből .
 Ha nincs szüksége időkorlátra, vagyis várjon örökké, csak nagyon nagy értéket használjon a következővel: -w. 
Válasz
ping -oc 100000 Hostname > /dev/null && /root/scripts/test1.sh -  ping -okilép apingaz első csomag beérkezése után
-  > /dev/nullátirányítja a kimenetet, így nem fogja látni
-  &&futtatná a következő parancsot, ha az előző parancs sikeres lenne
 Ezenkívül bármilyen folyamatot futtathat a háttérben: & hozzáadása a végéhez; például a echo "123" & a háttérben fog futni 
Válasz
Itt működik a szkript módosítása.
#!/bin/bash ping -c1 10.1.1.23 > /dev/null if [ $? -eq 0 ] then echo ok exit 0 else echo “fail” fi  A kimenetet a következő címre kell elküldenie: /dev/null, így nem fog megjelenni a képernyő. 
 -c a számlálásra szolgál. Ha a -c30 elemet beírja, akkor 30 alkalommal, mielőtt a szkript a következő sorra léphet. A szkript gyorsabb futtatásához a -c1 -t használom. 
 -i az, hogy másodperceket kell várni az egyes csomagok elküldése között. Tehát -i3 várjon 3 másodpercet. A szkript gyorsabb futtatása érdekében eltávolítom a -i alkalmazást. 
Végül, de nem utolsósorban használjon behúzást, hogy a kódja szépnek és könnyebben olvashatónak tűnjön.
Minta kimenet
user@linux:~$ ./script.sh ok user@linux:~$ user@linux:~$ ./script.sh “fail” user@linux:~$ Válasz
#!/bin/sh if [ $1 ] then for i in ` cat $1` do VAR1=$(ping -ac 2 $i| grep -c error) if [ $VAR1 == "0" ] then echo " valid : $i" else echo " invalid : $i" fi done else echo " please present the file name. example: pong /tmp/a " fi Megjegyzések
- Érdemes is néhány magyarázó szót hozzáadni …?
/tmpfájlban, ha a gazdagép lefelé megy. végül kitölti/tmp. Ez általában rossz hír …