The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  ВХОД  слежка  RSS
"обработка результата команды ping"
Вариант для распечатки Архивированная нить - только для чтения! 
Пред. тема | След. тема 
Форумы OpenNET: Виртуальная конференция (Public)
Изначальное сообщение [Проследить за развитием треда]

"обработка результата команды ping"
Сообщение от Владимир Искать по авторуВ закладки(??) on 22-Сен-04, 09:19  (MSK)
есть задача - написать скрипт, чтобы обрабатывал результат команды ping, если пинг идет - делай это, если не идет-делай это. Не подскажите как это реализвать?
  Рекомендовать в FAQ | Cообщить модератору | Наверх

 Оглавление

Индекс форумов | Темы | Пред. тема | След. тема
Сообщения по теме

1. "обработка результата команды ping"
Сообщение от Maxim Kuznetsov Искать по авторуВ закладки on 22-Сен-04, 09:28  (MSK)
>есть задача - написать скрипт, чтобы обрабатывал результат команды ping, если пинг
>идет - делай это, если не идет-делай это. Не подскажите как
>это реализвать?
Ты же сам себе ответил -)
ping www.ru
if [ $? -ne 0 ] ; then
echo "replyed"
else
echo "Don`t reply"
fi


  Рекомендовать в FAQ | Cообщить модератору | Наверх

2. "обработка результата команды ping"
Сообщение от noname Искать по авторуВ закладки(??) on 22-Сен-04, 12:17  (MSK)
>>есть задача - написать скрипт, чтобы обрабатывал результат команды ping, если пинг
>>идет - делай это, если не идет-делай это. Не подскажите как
>>это реализвать?
>Ты же сам себе ответил -)
>ping www.ru
>if [ $? -ne 0 ] ; then
> echo "replyed"
>else
> echo "Don`t reply"
>fi


http://imho.ws/showthread.php?t=47641

  Рекомендовать в FAQ | Cообщить модератору | Наверх

3. "обработка результата команды ping"
Сообщение от Brainbug Искать по авторуВ закладки(ok) on 22-Сен-04, 12:27  (MSK)
>>есть задача - написать скрипт, чтобы обрабатывал результат команды ping, если пинг
>>идет - делай это, если не идет-делай это. Не подскажите как
>>это реализвать?
>Ты же сам себе ответил -)
>ping www.ru
>if [ $? -ne 0 ] ; then
> echo "replyed"
>else
> echo "Don`t reply"
>fi

Proverka nikogda ne srabotajet.

  Рекомендовать в FAQ | Cообщить модератору | Наверх

4. "обработка результата команды ping"
Сообщение от Владимир Искать по авторуВ закладки(??) on 22-Сен-04, 12:45  (MSK)
>>>есть задача - написать скрипт, чтобы обрабатывал результат команды ping, если пинг
>>>идет - делай это, если не идет-делай это. Не подскажите как
>>>это реализвать?
>>Ты же сам себе ответил -)
>>ping www.ru
>>if [ $? -ne 0 ] ; then
>> echo "replyed"
>>else
>> echo "Don`t reply"
>>fi
>
>Proverka nikogda ne srabotajet.
почему не срабоатет?
  Рекомендовать в FAQ | Cообщить модератору | Наверх

5. "обработка результата команды ping"
Сообщение от Brainbug Искать по авторуВ закладки(ok) on 22-Сен-04, 12:51  (MSK)
>>>>есть задача - написать скрипт, чтобы обрабатывал результат команды ping, если пинг
>>>>идет - делай это, если не идет-делай это. Не подскажите как
>>>>это реализвать?
>>>Ты же сам себе ответил -)
>>>ping www.ru
>>>if [ $? -ne 0 ] ; then
>>> echo "replyed"
>>>else
>>> echo "Don`t reply"
>>>fi
>>
>>Proverka nikogda ne srabotajet.
>почему не срабоатет?

Zapusti prosto ping komandu i posmoti po4emu.

  Рекомендовать в FAQ | Cообщить модератору | Наверх

6. "обработка результата команды ping"
Сообщение от Maxim Kuznetsov Искать по авторуВ закладки on 22-Сен-04, 12:56  (MSK)
>>>есть задача - написать скрипт, чтобы обрабатывал результат команды ping, если пинг
>>>идет - делай это, если не идет-делай это. Не подскажите как
>>>это реализвать?
>>Ты же сам себе ответил -)
>>ping www.ru
>>if [ $? -ne 0 ] ; then
>> echo "replyed"
>>else
>> echo "Don`t reply"
>>fi
>
>Proverka nikogda ne srabotajet.
странно .. но
ping -qc 1 $IP && echo "Ok" || echo "Fault"
для $IP есть такой - выводит Ok
если нет (ответа нет) - выводит Fault
---
А!! о..
совсем забыл - проверять [ $? ] нельзя !
его надо скидывать в переменную и её уже проверять.. ( [ - это команда такая, при её запуске $? обнуляется )
то есть надоть :
ping -qc 15 www.ru
ret=$?
if [ $ret -ne 0 ] ; then
echo "replyed"
else
echo "Don`t reply"
fi

  Рекомендовать в FAQ | Cообщить модератору | Наверх

9. "обработка результата команды ping"
Сообщение от Brainbug Искать по авторуВ закладки(ok) on 22-Сен-04, 13:06  (MSK)
>>>>есть задача - написать скрипт, чтобы обрабатывал результат команды ping, если пинг
>>>>идет - делай это, если не идет-делай это. Не подскажите как
>>>>это реализвать?
>>>Ты же сам себе ответил -)
>>>ping www.ru
>>>if [ $? -ne 0 ] ; then
>>> echo "replyed"
>>>else
>>> echo "Don`t reply"
>>>fi
>>
>>Proverka nikogda ne srabotajet.
>странно .. но
>ping -qc 1 $IP && echo "Ok" || echo "Fault"
>для $IP есть такой - выводит Ok
>если нет (ответа нет) - выводит Fault
>---
>А!! о..
>совсем забыл - проверять [ $? ] нельзя !
>его надо скидывать в переменную и её уже проверять.. ( [ -
>это команда такая, при её запуске $? обнуляется )

Glupost. Ni4ego tam ne obnulajetca. Ona vistavlajetca v zna4enije ravnoje kodu vozvrata poslednei vipolennoi komandi ili bloka komand.

>то есть надоть :
>ping -qc 15 www.ru
>ret=$?
>if [ $ret -ne 0 ] ; then
> echo "replyed"
>else
> echo "Don`t reply"
>fi

  Рекомендовать в FAQ | Cообщить модератору | Наверх

11. "обработка результата команды ping"
Сообщение от Maxim Kuznetsov Искать по авторуВ закладки on 22-Сен-04, 13:42  (MSK)
>>>>>есть задача - написать скрипт, чтобы обрабатывал результат команды ping, если пинг
>>>>>идет - делай это, если не идет-делай это. Не подскажите как
>>>>>это реализвать?
>>>>Ты же сам себе ответил -)
>>>>ping www.ru
>>>>if [ $? -ne 0 ] ; then
>>>> echo "replyed"
>>>>else
>>>> echo "Don`t reply"
>>>>fi
>>>
>>>Proverka nikogda ne srabotajet.
>>странно .. но
>>ping -qc 1 $IP && echo "Ok" || echo "Fault"
>>для $IP есть такой - выводит Ok
>>если нет (ответа нет) - выводит Fault
>>---
>>А!! о..
>>совсем забыл - проверять [ $? ] нельзя !
>>его надо скидывать в переменную и её уже проверять.. ( [ -
>>это команда такая, при её запуске $? обнуляется )
>
>Glupost. Ni4ego tam ne obnulajetca. Ona vistavlajetca v zna4enije ravnoje kodu vozvrata
>poslednei vipolennoi komandi ili bloka komand.
>
>>то есть надоть :
>>ping -qc 15 www.ru
>>ret=$?
>>if [ $ret -ne 0 ] ; then
>> echo "replyed"
>>else
>> echo "Don`t reply"
>>fi
sorry - бывает..с чем-то я это упорно путаю ;-)
но всё равно использовать $? в проверках низзя - слишком часто меняется ;-)
даже ret=$?(а казалось-бы что не должно) уже изменяет $?
/bin/false; ret=$? ; echo "ret=$a \$?=$?"
ret=1 $1=0

  Рекомендовать в FAQ | Cообщить модератору | Наверх

12. "обработка результата команды ping"
Сообщение от Brainbug Искать по авторуВ закладки(ok) on 22-Сен-04, 14:11  (MSK)
>>>>>>есть задача - написать скрипт, чтобы обрабатывал результат команды ping, если пинг
>>>>>>идет - делай это, если не идет-делай это. Не подскажите как
>>>>>>это реализвать?
>>>>>Ты же сам себе ответил -)
>>>>>ping www.ru
>>>>>if [ $? -ne 0 ] ; then
>>>>> echo "replyed"
>>>>>else
>>>>> echo "Don`t reply"
>>>>>fi
>>>>
>>>>Proverka nikogda ne srabotajet.
>>>странно .. но
>>>ping -qc 1 $IP && echo "Ok" || echo "Fault"
>>>для $IP есть такой - выводит Ok
>>>если нет (ответа нет) - выводит Fault
>>>---
>>>А!! о..
>>>совсем забыл - проверять [ $? ] нельзя !
>>>его надо скидывать в переменную и её уже проверять.. ( [ -
>>>это команда такая, при её запуске $? обнуляется )
>>
>>Glupost. Ni4ego tam ne obnulajetca. Ona vistavlajetca v zna4enije ravnoje kodu vozvrata
>>poslednei vipolennoi komandi ili bloka komand.
>>
>>>то есть надоть :
>>>ping -qc 15 www.ru
>>>ret=$?
>>>if [ $ret -ne 0 ] ; then
>>> echo "replyed"
>>>else
>>> echo "Don`t reply"
>>>fi
>sorry - бывает..с чем-то я это упорно путаю ;-)
>но всё равно использовать $? в проверках низзя - слишком часто меняется
>;-)
>даже ret=$?(а казалось-бы что не должно) уже изменяет $?
>/bin/false; ret=$? ; echo "ret=$a \$?=$?"
>ret=1 $1=0
na to oni i peremennije 4tobi 4asto menatca.
"даже ret=$?(а казалось-бы что не должно) уже изменяет $?" - po4emu ne dolzno ?Vipolnilas komanda prisvaivanija odnogo zna4enija drugomu. $? otrazajet rezultat vipolnenija komandi. Esli vse normalno, to i kod vozvrata 0. Esli skazem ret bila bi konstantoi to i kod vozvrata bil bi sootvetstvuju6ij.
Vse normalno.
Ja ne vizu pri4in po4emu bi ne ispolzovat. Edinstvennoje nuzno sledit k kakoi imenno otrazajet $? i vse.

  Рекомендовать в FAQ | Cообщить модератору | Наверх

13. "обработка результата команды ping"
Сообщение от Maxim Kuznetsov Искать по авторуВ закладки on 22-Сен-04, 14:31  (MSK)
>>>>>>>есть задача - написать скрипт, чтобы обрабатывал результат команды ping, если пинг
>>>>>>>идет - делай это, если не идет-делай это. Не подскажите как
>>>>>>>это реализвать?
>>>>>>Ты же сам себе ответил -)
>>>>>>ping www.ru
>>>>>>if [ $? -ne 0 ] ; then
>>>>>> echo "replyed"
>>>>>>else
>>>>>> echo "Don`t reply"
>>>>>>fi
>>>>>
>>>>>Proverka nikogda ne srabotajet.
>>>>странно .. но
>>>>ping -qc 1 $IP && echo "Ok" || echo "Fault"
>>>>для $IP есть такой - выводит Ok
>>>>если нет (ответа нет) - выводит Fault
>>>>---
>>>>А!! о..
>>>>совсем забыл - проверять [ $? ] нельзя !
>>>>его надо скидывать в переменную и её уже проверять.. ( [ -
>>>>это команда такая, при её запуске $? обнуляется )
>>>
>>>Glupost. Ni4ego tam ne obnulajetca. Ona vistavlajetca v zna4enije ravnoje kodu vozvrata
>>>poslednei vipolennoi komandi ili bloka komand.
>>>
>>>>то есть надоть :
>>>>ping -qc 15 www.ru
>>>>ret=$?
>>>>if [ $ret -ne 0 ] ; then
>>>> echo "replyed"
>>>>else
>>>> echo "Don`t reply"
>>>>fi
>>sorry - бывает..с чем-то я это упорно путаю ;-)
>>но всё равно использовать $? в проверках низзя - слишком часто меняется
>>;-)
>>даже ret=$?(а казалось-бы что не должно) уже изменяет $?
>>/bin/false; ret=$? ; echo "ret=$a \$?=$?"
>>ret=1 $1=0
>na to oni i peremennije 4tobi 4asto menatca.
>"даже ret=$?(а казалось-бы что не должно) уже изменяет $?" - po4emu ne
>dolzno ?Vipolnilas komanda prisvaivanija odnogo zna4enija drugomu. $? otrazajet rezultat vipolnenija
>komandi. Esli vse normalno, to i kod vozvrata 0. Esli skazem
>ret bila bi konstantoi to i kod vozvrata bil bi sootvetstvuju6ij.
>
>Vse normalno.
>Ja ne vizu pri4in po4emu bi ne ispolzovat. Edinstvennoje nuzno sledit k
>kakoi imenno otrazajet $? i vse.

ostaetsa dvusmislennost - a=const - $? vsegda true(0 ne zavisit ot const) a=`command` - $? zavisit ot command

  Рекомендовать в FAQ | Cообщить модератору | Наверх

14. "обработка результата команды ping"
Сообщение от Brainbug Искать по авторуВ закладки(ok) on 22-Сен-04, 15:02  (MSK)
>>>>>>>>есть задача - написать скрипт, чтобы обрабатывал результат команды ping, если пинг
>>>>>>>>идет - делай это, если не идет-делай это. Не подскажите как
>>>>>>>>это реализвать?
>>>>>>>Ты же сам себе ответил -)
>>>>>>>ping www.ru
>>>>>>>if [ $? -ne 0 ] ; then
>>>>>>> echo "replyed"
>>>>>>>else
>>>>>>> echo "Don`t reply"
>>>>>>>fi
>>>>>>
>>>>>>Proverka nikogda ne srabotajet.
>>>>>странно .. но
>>>>>ping -qc 1 $IP && echo "Ok" || echo "Fault"
>>>>>для $IP есть такой - выводит Ok
>>>>>если нет (ответа нет) - выводит Fault
>>>>>---
>>>>>А!! о..
>>>>>совсем забыл - проверять [ $? ] нельзя !
>>>>>его надо скидывать в переменную и её уже проверять.. ( [ -
>>>>>это команда такая, при её запуске $? обнуляется )
>>>>
>>>>Glupost. Ni4ego tam ne obnulajetca. Ona vistavlajetca v zna4enije ravnoje kodu vozvrata
>>>>poslednei vipolennoi komandi ili bloka komand.
>>>>
>>>>>то есть надоть :
>>>>>ping -qc 15 www.ru
>>>>>ret=$?
>>>>>if [ $ret -ne 0 ] ; then
>>>>> echo "replyed"
>>>>>else
>>>>> echo "Don`t reply"
>>>>>fi
>>>sorry - бывает..с чем-то я это упорно путаю ;-)
>>>но всё равно использовать $? в проверках низзя - слишком часто меняется
>>>;-)
>>>даже ret=$?(а казалось-бы что не должно) уже изменяет $?
>>>/bin/false; ret=$? ; echo "ret=$a \$?=$?"
>>>ret=1 $1=0
>>na to oni i peremennije 4tobi 4asto menatca.
>>"даже ret=$?(а казалось-бы что не должно) уже изменяет $?" - po4emu ne
>>dolzno ?Vipolnilas komanda prisvaivanija odnogo zna4enija drugomu. $? otrazajet rezultat vipolnenija
>>komandi. Esli vse normalno, to i kod vozvrata 0. Esli skazem
>>ret bila bi konstantoi to i kod vozvrata bil bi sootvetstvuju6ij.
>>
>>Vse normalno.
>>Ja ne vizu pri4in po4emu bi ne ispolzovat. Edinstvennoje nuzno sledit k
>>kakoi imenno otrazajet $? i vse.
>
>ostaetsa dvusmislennost - a=const - $? vsegda true(0 ne zavisit ot const)
>a=`command` - $? zavisit ot command
Vi menja ne ponali. Dumaju tak budet ponatnei:

[root@test shell]# cat 001.sh
#!/bin/sh
readonly test=1
test=$?
[root@test shell]# ./001.sh
./001.sh: line 4: test: readonly variable
[root@test shell]# echo $?
1
[root@test shell]#

P.S. "ostaetsa dvusmislennost - a=const - $? vsegda true" - estestvenno. Komanda vipolnilas. A po4emu ja ne mogu prisvoit zna4enije ?

  Рекомендовать в FAQ | Cообщить модератору | Наверх

16. "обработка результата команды ping"
Сообщение от Maxim Kuznetsov Искать по авторуВ закладки on 22-Сен-04, 17:38  (MSK)
>>>>>>>>>есть задача - написать скрипт, чтобы обрабатывал результат команды ping, если пинг
>>>>>>>>>идет - делай это, если не идет-делай это. Не подскажите как
>>>>>>>>>это реализвать?
>>>>>>>>Ты же сам себе ответил -)
>>>>>>>>ping www.ru
>>>>>>>>if [ $? -ne 0 ] ; then
>>>>>>>> echo "replyed"
>>>>>>>>else
>>>>>>>> echo "Don`t reply"
>>>>>>>>fi
>>>>>>>
>>>>>>>Proverka nikogda ne srabotajet.
>>>>>>странно .. но
>>>>>>ping -qc 1 $IP && echo "Ok" || echo "Fault"
>>>>>>для $IP есть такой - выводит Ok
>>>>>>если нет (ответа нет) - выводит Fault
>>>>>>---
>>>>>>А!! о..
>>>>>>совсем забыл - проверять [ $? ] нельзя !
>>>>>>его надо скидывать в переменную и её уже проверять.. ( [ -
>>>>>>это команда такая, при её запуске $? обнуляется )
>>>>>
>>>>>Glupost. Ni4ego tam ne obnulajetca. Ona vistavlajetca v zna4enije ravnoje kodu vozvrata
>>>>>poslednei vipolennoi komandi ili bloka komand.
>>>>>
>>>>>>то есть надоть :
>>>>>>ping -qc 15 www.ru
>>>>>>ret=$?
>>>>>>if [ $ret -ne 0 ] ; then
>>>>>> echo "replyed"
>>>>>>else
>>>>>> echo "Don`t reply"
>>>>>>fi
>>>>sorry - бывает..с чем-то я это упорно путаю ;-)
>>>>но всё равно использовать $? в проверках низзя - слишком часто меняется
>>>>;-)
>>>>даже ret=$?(а казалось-бы что не должно) уже изменяет $?
>>>>/bin/false; ret=$? ; echo "ret=$a \$?=$?"
>>>>ret=1 $1=0
>>>na to oni i peremennije 4tobi 4asto menatca.
>>>"даже ret=$?(а казалось-бы что не должно) уже изменяет $?" - po4emu ne
>>>dolzno ?Vipolnilas komanda prisvaivanija odnogo zna4enija drugomu. $? otrazajet rezultat vipolnenija
>>>komandi. Esli vse normalno, to i kod vozvrata 0. Esli skazem
>>>ret bila bi konstantoi to i kod vozvrata bil bi sootvetstvuju6ij.
>>>
>>>Vse normalno.
>>>Ja ne vizu pri4in po4emu bi ne ispolzovat. Edinstvennoje nuzno sledit k
>>>kakoi imenno otrazajet $? i vse.
>>
>>ostaetsa dvusmislennost - a=const - $? vsegda true(0 ne zavisit ot const)
>>a=`command` - $? zavisit ot command
>Vi menja ne ponali. Dumaju tak budet ponatnei:
>
>[root@test shell]# cat 001.sh
>#!/bin/sh
>readonly test=1
>test=$?
>[root@test shell]# ./001.sh
>./001.sh: line 4: test: readonly variable
>[root@test shell]# echo $?
>1
>[root@test shell]#
>
>P.S. "ostaetsa dvusmislennost - a=const - $? vsegda true" - estestvenno. Komanda
>vipolnilas. A po4emu ja ne mogu prisvoit zna4enije ?
Chemu-ge raven $? posle prisvaivanija,
v smisle chto za resultat u = ??

user@host:~$ a=`ping -c1 192.168.0.1` || echo -e "$? >>\"$a\"<<"
1 >>"PING 192.168.0.1 (192.168.0.1) 56(84) bytes of data.
From 192.168.0.62 icmp_seq=1 Destination Host Unreachable

--- 192.168.0.1 ping statistics ---
1 packets transmitted, 0 received, +1 errors, 100% packet loss, time 0ms"<<

peremennaya $a normalno prisvoenna, NO resultat u vsego virageniya FALSE
mogno bilo-bi podumat, chto = ne menyat znachenya $?, no on ego menyat :
---
user@host:~$ /bin/false ; a=0 ; echo "$? >>$a<<"
0 >>0<<
user@host:~$ /bin/false ; echo "$? >>$a<<"
1 >>0<<
---
esli s readonly, to voobshe svistoplyaska :
---
user@host:~$ readonly a="test" ; a=`ping -nc2 192.168.0.1` && echo "$? >>$a<<"
-bash: a: readonly variable
user@host:~$ echo $?
1
user@host:~$ readonly b="test" ; b=`ping -nc2 192.168.0.1` || echo "$? >>$b<<"
-bash: b: readonly variable
user@host:~$ echo $?
1
user@host:~$ readonly c="test" ; c=`ping -nc2 127.0.0.1` || echo "$? >>$c<<"
-bash: c: readonly variable
user@host:~$ echo $?
1
user@host:~$ readonly d="test" ; d=`ping -nc2 127.0.0.1` && echo "$? >>$d<<"
-bash: d: readonly variable
user@host:~$ echo $?
1
---
poluchaetsya, chto primer s readonly privedennyi vami, ne sovsem correcten - oshibka pri interpretacii delayet $? voobshe neopredelennim, chto vidno po ispolneniu conveerov (ne ispolnyaetsa ni TRUE ni FALSE)

  Рекомендовать в FAQ | Cообщить модератору | Наверх

17. "обработка результата команды ping"
Сообщение от Brainbug Искать по авторуВ закладки(ok) on 22-Сен-04, 17:53  (MSK)
>>>>>>>>>>есть задача - написать скрипт, чтобы обрабатывал результат команды ping, если пинг
>>>>>>>>>>идет - делай это, если не идет-делай это. Не подскажите как
>>>>>>>>>>это реализвать?
>>>>>>>>>Ты же сам себе ответил -)
>>>>>>>>>ping www.ru
>>>>>>>>>if [ $? -ne 0 ] ; then
>>>>>>>>> echo "replyed"
>>>>>>>>>else
>>>>>>>>> echo "Don`t reply"
>>>>>>>>>fi
>>>>>>>>
>>>>>>>>Proverka nikogda ne srabotajet.
>>>>>>>странно .. но
>>>>>>>ping -qc 1 $IP && echo "Ok" || echo "Fault"
>>>>>>>для $IP есть такой - выводит Ok
>>>>>>>если нет (ответа нет) - выводит Fault
>>>>>>>---
>>>>>>>А!! о..
>>>>>>>совсем забыл - проверять [ $? ] нельзя !
>>>>>>>его надо скидывать в переменную и её уже проверять.. ( [ -
>>>>>>>это команда такая, при её запуске $? обнуляется )
>>>>>>
>>>>>>Glupost. Ni4ego tam ne obnulajetca. Ona vistavlajetca v zna4enije ravnoje kodu vozvrata
>>>>>>poslednei vipolennoi komandi ili bloka komand.
>>>>>>
>>>>>>>то есть надоть :
>>>>>>>ping -qc 15 www.ru
>>>>>>>ret=$?
>>>>>>>if [ $ret -ne 0 ] ; then
>>>>>>> echo "replyed"
>>>>>>>else
>>>>>>> echo "Don`t reply"
>>>>>>>fi
>>>>>sorry - бывает..с чем-то я это упорно путаю ;-)
>>>>>но всё равно использовать $? в проверках низзя - слишком часто меняется
>>>>>;-)
>>>>>даже ret=$?(а казалось-бы что не должно) уже изменяет $?
>>>>>/bin/false; ret=$? ; echo "ret=$a \$?=$?"
>>>>>ret=1 $1=0
>>>>na to oni i peremennije 4tobi 4asto menatca.
>>>>"даже ret=$?(а казалось-бы что не должно) уже изменяет $?" - po4emu ne
>>>>dolzno ?Vipolnilas komanda prisvaivanija odnogo zna4enija drugomu. $? otrazajet rezultat vipolnenija
>>>>komandi. Esli vse normalno, to i kod vozvrata 0. Esli skazem
>>>>ret bila bi konstantoi to i kod vozvrata bil bi sootvetstvuju6ij.
>>>>
>>>>Vse normalno.
>>>>Ja ne vizu pri4in po4emu bi ne ispolzovat. Edinstvennoje nuzno sledit k
>>>>kakoi imenno otrazajet $? i vse.
>>>
>>>ostaetsa dvusmislennost - a=const - $? vsegda true(0 ne zavisit ot const)
>>>a=`command` - $? zavisit ot command
>>Vi menja ne ponali. Dumaju tak budet ponatnei:
>>
>>[root@test shell]# cat 001.sh
>>#!/bin/sh
>>readonly test=1
>>test=$?
>>[root@test shell]# ./001.sh
>>./001.sh: line 4: test: readonly variable
>>[root@test shell]# echo $?
>>1
>>[root@test shell]#
>>
>>P.S. "ostaetsa dvusmislennost - a=const - $? vsegda true" - estestvenno. Komanda
>>vipolnilas. A po4emu ja ne mogu prisvoit zna4enije ?
>Chemu-ge raven $? posle prisvaivanija,
>v smisle chto za resultat u = ??
>
>user@host:~$ a=`ping -c1 192.168.0.1` || echo -e "$? >>\"$a\"<<"
>1 >>"PING 192.168.0.1 (192.168.0.1) 56(84) bytes of data.
>From 192.168.0.62 icmp_seq=1 Destination Host Unreachable
>
>--- 192.168.0.1 ping statistics ---
>1 packets transmitted, 0 received, +1 errors, 100% packet loss, time 0ms"<<
>
>
>peremennaya $a normalno prisvoenna, NO resultat u vsego virageniya FALSE
>mogno bilo-bi podumat, chto = ne menyat znachenya $?, no on ego
>menyat :
>---
>user@host:~$ /bin/false ; a=0 ; echo "$? >>$a<<"
>0 >>0<<
>user@host:~$ /bin/false ; echo "$? >>$a<<"
>1 >>0<<

man false:
...

SYNOPSIS
       false [ignored command line arguments]
       false OPTION

DESCRIPTION
       Exit with a status code indicating failure.
...

Objasnenije.
1 variant. Vopros: kakaja komanda vipolnilas poslednei ? a=0 pravilno ? Sledovatelno kod vozvrata etoi posle vipolenija etoi komandi est 0, to est vse vipolnilos horo6o.
user@host:~$ /bin/false ; a=0 ; echo "$? >>$a<<"
0 >>0<<

2 varinat. Vopros: kakaja komanda vipolnilas posledei ? /bin/false pravilno ? Sledovatelno posle 2 secukdnogooznakomlenija s maualom false komandi ponimajem 4to ona ni4ego ne delajet i zaver6ajet rabotu s kodom vozvrata, kotorij pokazivajet 4to slu4ilos 4to-to. V dannom slu4aje:
user@host:~$ /bin/false ; echo "$? >>$a<<"
1 >>0<<
P.S. 4to i trebovalos dokazat.

>---
>esli s readonly, to voobshe svistoplyaska :
>---
>user@host:~$ readonly a="test" ; a=`ping -nc2 192.168.0.1` && echo "$? >>$a<<"
>-bash: a: readonly variable
>user@host:~$ echo $?
>1
>user@host:~$ readonly b="test" ; b=`ping -nc2 192.168.0.1` || echo "$? >>$b<<"
>-bash: b: readonly variable
>user@host:~$ echo $?
>1
>user@host:~$ readonly c="test" ; c=`ping -nc2 127.0.0.1` || echo "$? >>$c<<"
>-bash: c: readonly variable
>user@host:~$ echo $?
>1
>user@host:~$ readonly d="test" ; d=`ping -nc2 127.0.0.1` && echo "$? >>$d<<"
>-bash: d: readonly variable
>user@host:~$ echo $?
>1
>---
>poluchaetsya, chto primer s readonly privedennyi vami, ne sovsem correcten - oshibka
>pri interpretacii delayet $? voobshe neopredelennim, chto vidno po ispolneniu conveerov
>(ne ispolnyaetsa ni TRUE ni FALSE)
4to zna4it ni true ni false. zna4enije vipolenija poslednei komandi (t.e. va dannom slu4aje komandi prisvaivanija) zakon4ilos neuda4ei. To 4est v dannom slu4aje $? dolzen bit uztanovlen v zna4enije otli4noje ot 0. smotrim:
user@host:~$ readonly a="test" ; a=`ping -nc2 192.168.0.1` && echo "$? >>$a<<"
-bash: a: readonly variable
user@host:~$ echo $?
1
user@host:~$ readonly b="test" ; b=`ping -nc2 192.168.0.1` || echo "$? >>$b<<"
-bash: b: readonly variable
user@host:~$ echo $?
1
user@host:~$ readonly c="test" ; c=`ping -nc2 127.0.0.1` || echo "$? >>$c<<"
-bash: c: readonly variable
user@host:~$ echo $?
1
user@host:~$ readonly d="test" ; d=`ping -nc2 127.0.0.1` && echo "$? >>$d<<"
-bash: d: readonly variable
user@host:~$ echo $?
1

Naskolko ja vizu vse zna4enija otli4nije ot 0. V dannom slu4aje eto edenica.
Primer s readonly il pokazan dla togo 4tobi pojasnit 4to operator prisvaivanija (=) krome togo 4to prisvoit zna4enije peremennoi mozet trakze i ne vipolnitca uzpe6no, vpro4em takze kak i lubaja komanda. A posemu esli a=10 vipolnajetca vipolnajetca uzpe6no, to a budet ravno 10 a kod vozvrata 0, a vot esli budet readonly a=1; a=10 to a ne budet ravno 10 a ostanetca 1, a kod vozvrata dla komandi a=10 budet >0.
Vse eto ti sam ze i podtverdil svoimi testami.

  Рекомендовать в FAQ | Cообщить модератору | Наверх

18. "обработка результата команды ping"
Сообщение от Maxim Kuznetsov Искать по авторуВ закладки on 22-Сен-04, 18:47  (MSK)
primer poochivednee :

user@host:~$ readonly x="test" ; x=`ping -nc2 127.0.0.1` && echo "Ok" || echo "Fault"
-bash: x: readonly variable
user@host:~$

Присваивание было последним ? Не прошло, значит $? == FALSE ??
значит по логике должно быть напечатанно "Fault" иначе должен быть "Ok"
Но нет ни того ни другого :-) Исполнение конвеера просто грубо прерванно
(если разнести тесты И ИЛИ на два отдельных теста, результат тот-же,что впрочем естественно)
Читаем man (извиняюсь за динную цитату):
<cite>
       The  control  operators  && and || denote AND lists and OR
       lists, respectively.  An AND list has the form

              command1 && command2

       command2 is executed if, and only if, command1 returns  an
       exit status of zero.

       An OR list has the form

              command1 || command2

       command2  is  executed  if  and only if command1 returns a
       non-zero exit status.  The return status  of  AND  and  OR
       lists  is  the exit status of the last command executed in
       the list.
</cite>
<cite>
   Special Parameters
       The shell  treats  several  parameters  specially.   These
       parameters  may  only be referenced; assignment to them is
       not allowed.
   ...
       ?      Expands to the status of the most recently executed
              foreground pipeline.
   ...
</cite>
<cite>
       If any of the assignments attempts to assign a value to  a
       readonly  variable, an error occurs, and the command exits
       with a non-zero status.
</cite>
то есть судя по man`у хоть что-то должно было выводиться..
или "status of..pipeline" и "..exits status" разные вещи и по разному
влияют но исполнение коневееров и переменную $?
??


  Рекомендовать в FAQ | Cообщить модератору | Наверх

19. "обработка результата команды ping"
Сообщение от Brainbug Искать по авторуВ закладки(ok) on 23-Сен-04, 10:12  (MSK)
>primer poochivednee :
>
>user@host:~$ readonly x="test" ; x=`ping -nc2 127.0.0.1` && echo "Ok" || echo
>"Fault"
>-bash: x: readonly variable
>user@host:~$
>
>Присваивание было последним ? Не прошло, значит $? == FALSE ??
>значит по логике должно быть напечатанно "Fault" иначе должен быть "Ok"
>Но нет ни того ни другого :-) Исполнение конвеера просто грубо прерванно
>
>(если разнести тесты И ИЛИ на два отдельных теста, результат тот-же,что впрочем
>естественно)
>Читаем man (извиняюсь за динную цитату):
><cite>
>       The  control  operators
> && and || denote AND lists and OR
>       lists, respectively.  An AND
>list has the form
>
>            
>  command1 && command2
>
>       command2 is executed if, and
>only if, command1 returns  an
>       exit status of zero.
>
>       An OR list has the
>form
>
>            
>  command1 || command2
>
>       command2  is  executed
> if  and only if command1 returns a
>       non-zero exit status.  The
>return status  of  AND  and  OR
>       lists  is  the
>exit status of the last command executed in
>       the list.
></cite>
><cite>
>   Special Parameters
>       The shell  treats  
>several  parameters  specially.   These
>       parameters  may  only
>be referenced; assignment to them is
>       not allowed.
>   ...
>       ?    
> Expands to the status of the most recently executed
>            
>  foreground pipeline.
>   ...
></cite>
><cite>
>       If any of the assignments
>attempts to assign a value to  a
>       readonly  variable, an error
>occurs, and the command exits
>       with a non-zero status.
></cite>
>то есть судя по man`у хоть что-то должно было выводиться..
>или "status of..pipeline" и "..exits status" разные вещи и по разному
>влияют но исполнение коневееров и переменную $?
>??

Konvejer eto konvejer, a status zaver6enija komandi eto status zaver6enija komandi. Vozmozno solgasen s tem, 4to moi primerpo povodu readonly peremennoi ne sovsem korekten v tom plane 4to script obrivajetca imenno ka komande '=', 4to jest dostato4no serjeznaja o6ibka 4tobi ne prodolzat dal6e vipolenije. A posemu i ne vipolnat dalnei6ije proverki && i ||. No smisle ne v etom, smisl v tom 4to $? vsegda otrazajet kod vozvrata naiboleje poslednei vipolenoi komandi. V dannom slu4aje bila o6ibka (t.k. peremennaja bila readonly), 4to i privelo k ob6emu kodu 1 i , t.k. o6ibka bila dostato4no serjeznaja, prekra6enii vipolnenija scripta v meste gde osu6estvlalos prisvaivanije. Poetomu i ne prohodat proverki i pro4ije ve6i.

  Рекомендовать в FAQ | Cообщить модератору | Наверх

20. "обработка результата команды ping"
Сообщение от Brainbug Искать по авторуВ закладки(ok) on 23-Сен-04, 10:35  (MSK)
>>primer poochivednee :
>>
>>user@host:~$ readonly x="test" ; x=`ping -nc2 127.0.0.1` && echo "Ok" || echo
>>"Fault"
>>-bash: x: readonly variable
>>user@host:~$
>>
>>Присваивание было последним ? Не прошло, значит $? == FALSE ??
>>значит по логике должно быть напечатанно "Fault" иначе должен быть "Ok"
>>Но нет ни того ни другого :-) Исполнение конвеера просто грубо прерванно
>>
>>(если разнести тесты И ИЛИ на два отдельных теста, результат тот-же,что впрочем
>>естественно)
>>Читаем man (извиняюсь за динную цитату):
>><cite>
>>       The  control  operators
>> && and || denote AND lists and OR
>>       lists, respectively.  An AND
>>list has the form
>>
>>            
>>  command1 && command2
>>
>>       command2 is executed if, and
>>only if, command1 returns  an
>>       exit status of zero.
>>
>>       An OR list has the
>>form
>>
>>            
>>  command1 || command2
>>
>>       command2  is  executed
>> if  and only if command1 returns a
>>       non-zero exit status.  The
>>return status  of  AND  and  OR
>>       lists  is  the
>>exit status of the last command executed in
>>       the list.
>></cite>
>><cite>
>>   Special Parameters
>>       The shell  treats  
>>several  parameters  specially.   These
>>       parameters  may  only
>>be referenced; assignment to them is
>>       not allowed.
>>   ...
>>       ?    
>> Expands to the status of the most recently executed
>>            
>>  foreground pipeline.
>>   ...
>></cite>
>><cite>
>>       If any of the assignments
>>attempts to assign a value to  a
>>       readonly  variable, an error
>>occurs, and the command exits
>>       with a non-zero status.
>></cite>
>>то есть судя по man`у хоть что-то должно было выводиться..
>>или "status of..pipeline" и "..exits status" разные вещи и по разному
>>влияют но исполнение коневееров и переменную $?
>>??
>
>Konvejer eto konvejer, a status zaver6enija komandi eto status zaver6enija komandi. Vozmozno
>solgasen s tem, 4to moi primerpo povodu readonly peremennoi ne sovsem
>korekten v tom plane 4to script obrivajetca imenno ka komande '=',
>4to jest dostato4no serjeznaja o6ibka 4tobi ne prodolzat dal6e vipolenije. A
>posemu i ne vipolnat dalnei6ije proverki && i ||. No smisle
>ne v etom, smisl v tom 4to $? vsegda otrazajet kod
>vozvrata naiboleje poslednei vipolenoi komandi. V dannom slu4aje bila o6ibka (t.k.
>peremennaja bila readonly), 4to i privelo k ob6emu kodu 1 i
>, t.k. o6ibka bila dostato4no serjeznaja, prekra6enii vipolnenija scripta v meste
>gde osu6estvlalos prisvaivanije. Poetomu i ne prohodat proverki i pro4ije ve6i.
>
Vozmozno takoi primer lu46e pokazet 4to i kak:

[root@test shell]# cat 002.sh
#!/bin/sh
(a=1;exit 4) && echo "OK" || echo "Failure"
[root@test shell]# ./002.sh
Failure

[root@test shell]# cat 002.sh
#!/bin/sh
(a=1;exit 0) && echo "OK" || echo "Failure"
[root@test shell]# ./002.sh
OK


[root@test shell]# cat 002.sh
#!/bin/sh
(a=1; a=3) && echo "OK" || echo "Failure"
[root@test shell]# ./002.sh
OK

[root@test shell]# cat 002.sh
#!/bin/sh
(readonly a=1; a=3) && echo "OK" || echo "Failure"
[root@test shell]# ./002.sh
./002.sh: line 3: a: readonly variable
Failure

  Рекомендовать в FAQ | Cообщить модератору | Наверх

21. "обработка результата команды ping"
Сообщение от Maxim Kuznetsov Искать по авторуВ закладки on 23-Сен-04, 14:05  (MSK)
>>>primer poochivednee :
>>>
>>>user@host:~$ readonly x="test" ; x=`ping -nc2 127.0.0.1` && echo "Ok" || echo
>>>"Fault"
>>>-bash: x: readonly variable
>>>user@host:~$
>>>
>>>Присваивание было последним ? Не прошло, значит $? == FALSE ??
>>>значит по логике должно быть напечатанно "Fault" иначе должен быть "Ok"
>>>Но нет ни того ни другого :-) Исполнение конвеера просто грубо прерванно
>>>
>>>(если разнести тесты И ИЛИ на два отдельных теста, результат тот-же,что впрочем
>>>естественно)
>>>Читаем man (извиняюсь за динную цитату):
>>><cite>
>>>       The  control  operators
>>> && and || denote AND lists and OR
>>>       lists, respectively.  An AND
>>>list has the form
>>>
>>>            
>>>  command1 && command2
>>>
>>>       command2 is executed if, and
>>>only if, command1 returns  an
>>>       exit status of zero.
>>>
>>>       An OR list has the
>>>form
>>>
>>>            
>>>  command1 || command2
>>>
>>>       command2  is  executed
>>> if  and only if command1 returns a
>>>       non-zero exit status.  The
>>>return status  of  AND  and  OR
>>>       lists  is  the
>>>exit status of the last command executed in
>>>       the list.
>>></cite>
>>><cite>
>>>   Special Parameters
>>>       The shell  treats  
>>>several  parameters  specially.   These
>>>       parameters  may  only
>>>be referenced; assignment to them is
>>>       not allowed.
>>>   ...
>>>       ?    
>>> Expands to the status of the most recently executed
>>>            
>>>  foreground pipeline.
>>>   ...
>>></cite>
>>><cite>
>>>       If any of the assignments
>>>attempts to assign a value to  a
>>>       readonly  variable, an error
>>>occurs, and the command exits
>>>       with a non-zero status.
>>></cite>
>>>то есть судя по man`у хоть что-то должно было выводиться..
>>>или "status of..pipeline" и "..exits status" разные вещи и по разному
>>>влияют но исполнение коневееров и переменную $?
>>>??
>>
>>Konvejer eto konvejer, a status zaver6enija komandi eto status zaver6enija komandi. Vozmozno
>>solgasen s tem, 4to moi primerpo povodu readonly peremennoi ne sovsem
>>korekten v tom plane 4to script obrivajetca imenno ka komande '=',
>>4to jest dostato4no serjeznaja o6ibka 4tobi ne prodolzat dal6e vipolenije. A
>>posemu i ne vipolnat dalnei6ije proverki && i ||. No smisle
>>ne v etom, smisl v tom 4to $? vsegda otrazajet kod
>>vozvrata naiboleje poslednei vipolenoi komandi. V dannom slu4aje bila o6ibka (t.k.
>>peremennaja bila readonly), 4to i privelo k ob6emu kodu 1 i
>>, t.k. o6ibka bila dostato4no serjeznaja, prekra6enii vipolnenija scripta v meste
>>gde osu6estvlalos prisvaivanije. Poetomu i ne prohodat proverki i pro4ije ve6i.
>>
> Vozmozno takoi primer lu46e pokazet 4to i kak:
>
>[root@test shell]# cat 002.sh
>#!/bin/sh
>(a=1;exit 4) && echo "OK" || echo "Failure"
>[root@test shell]# ./002.sh
>Failure
>
>[root@test shell]# cat 002.sh
>#!/bin/sh
>(a=1;exit 0) && echo "OK" || echo "Failure"
>[root@test shell]# ./002.sh
>OK
>
>
>[root@test shell]# cat 002.sh
>#!/bin/sh
>(a=1; a=3) && echo "OK" || echo "Failure"
>[root@test shell]# ./002.sh
>OK
>
>[root@test shell]# cat 002.sh
>#!/bin/sh
>(readonly a=1; a=3) && echo "OK" || echo "Failure"
>[root@test shell]# ./002.sh
>./002.sh: line 3: a: readonly variable
>Failure
с сим согласен, резюмируя обсуждение, делаю вывод :
"при обнаружении серьезной ошибки bash прерывает исполнение
текущей строки (списка команд),
и устанавливает значение #? в FALSE"

Пример :
---sample.sh---
#!/bin/bash
readonly a="test"
a=`/bin/true` && echo "Ok" || echo "Fault" ; echo "Next Command"
echo "Next List"
----
[user@host]~$ ./sample.sh
./sample.sh: line2: a:readonly variable
Next List
[user@host]~$

P.S. при чтении/переводе man`а по bash следует быть внимательнее - под command может подразумеватся не только отдельная команда, но и список команд. Рекурсивное определение command: command | (command op command)
и фраза "the command exits with a non-zero status" относится сразу ко всему списку.
P.P.S: Благадорю за конструктивную беседу

  Рекомендовать в FAQ | Cообщить модератору | Наверх

22. "обработка результата команды ping"
Сообщение от Brainbug Искать по авторуВ закладки(ok) on 23-Сен-04, 14:08  (MSK)
>>>>primer poochivednee :
>>>>
>>>>user@host:~$ readonly x="test" ; x=`ping -nc2 127.0.0.1` && echo "Ok" || echo
>>>>"Fault"
>>>>-bash: x: readonly variable
>>>>user@host:~$
>>>>
>>>>Присваивание было последним ? Не прошло, значит $? == FALSE ??
>>>>значит по логике должно быть напечатанно "Fault" иначе должен быть "Ok"
>>>>Но нет ни того ни другого :-) Исполнение конвеера просто грубо прерванно
>>>>
>>>>(если разнести тесты И ИЛИ на два отдельных теста, результат тот-же,что впрочем
>>>>естественно)
>>>>Читаем man (извиняюсь за динную цитату):
>>>><cite>
>>>>       The  control  operators
>>>> && and || denote AND lists and OR
>>>>       lists, respectively.  An AND
>>>>list has the form
>>>>
>>>>            
>>>>  command1 && command2
>>>>
>>>>       command2 is executed if, and
>>>>only if, command1 returns  an
>>>>       exit status of zero.
>>>>
>>>>       An OR list has the
>>>>form
>>>>
>>>>            
>>>>  command1 || command2
>>>>
>>>>       command2  is  executed
>>>> if  and only if command1 returns a
>>>>       non-zero exit status.  The
>>>>return status  of  AND  and  OR
>>>>       lists  is  the
>>>>exit status of the last command executed in
>>>>       the list.
>>>></cite>
>>>><cite>
>>>>   Special Parameters
>>>>       The shell  treats  
>>>>several  parameters  specially.   These
>>>>       parameters  may  only
>>>>be referenced; assignment to them is
>>>>       not allowed.
>>>>   ...
>>>>       ?    
>>>> Expands to the status of the most recently executed
>>>>            
>>>>  foreground pipeline.
>>>>   ...
>>>></cite>
>>>><cite>
>>>>       If any of the assignments
>>>>attempts to assign a value to  a
>>>>       readonly  variable, an error
>>>>occurs, and the command exits
>>>>       with a non-zero status.
>>>></cite>
>>>>то есть судя по man`у хоть что-то должно было выводиться..
>>>>или "status of..pipeline" и "..exits status" разные вещи и по разному
>>>>влияют но исполнение коневееров и переменную $?
>>>>??
>>>
>>>Konvejer eto konvejer, a status zaver6enija komandi eto status zaver6enija komandi. Vozmozno
>>>solgasen s tem, 4to moi primerpo povodu readonly peremennoi ne sovsem
>>>korekten v tom plane 4to script obrivajetca imenno ka komande '=',
>>>4to jest dostato4no serjeznaja o6ibka 4tobi ne prodolzat dal6e vipolenije. A
>>>posemu i ne vipolnat dalnei6ije proverki && i ||. No smisle
>>>ne v etom, smisl v tom 4to $? vsegda otrazajet kod
>>>vozvrata naiboleje poslednei vipolenoi komandi. V dannom slu4aje bila o6ibka (t.k.
>>>peremennaja bila readonly), 4to i privelo k ob6emu kodu 1 i
>>>, t.k. o6ibka bila dostato4no serjeznaja, prekra6enii vipolnenija scripta v meste
>>>gde osu6estvlalos prisvaivanije. Poetomu i ne prohodat proverki i pro4ije ve6i.
>>>
>> Vozmozno takoi primer lu46e pokazet 4to i kak:
>>
>>[root@test shell]# cat 002.sh
>>#!/bin/sh
>>(a=1;exit 4) && echo "OK" || echo "Failure"
>>[root@test shell]# ./002.sh
>>Failure
>>
>>[root@test shell]# cat 002.sh
>>#!/bin/sh
>>(a=1;exit 0) && echo "OK" || echo "Failure"
>>[root@test shell]# ./002.sh
>>OK
>>
>>
>>[root@test shell]# cat 002.sh
>>#!/bin/sh
>>(a=1; a=3) && echo "OK" || echo "Failure"
>>[root@test shell]# ./002.sh
>>OK
>>
>>[root@test shell]# cat 002.sh
>>#!/bin/sh
>>(readonly a=1; a=3) && echo "OK" || echo "Failure"
>>[root@test shell]# ./002.sh
>>./002.sh: line 3: a: readonly variable
>>Failure
>с сим согласен, резюмируя обсуждение, делаю вывод :
>"при обнаружении серьезной ошибки bash прерывает исполнение
>текущей строки (списка команд),
>и устанавливает значение #? в FALSE"
>
>Пример :
>---sample.sh---
>#!/bin/bash
>readonly a="test"
>a=`/bin/true` && echo "Ok" || echo "Fault" ; echo "Next Command"
>echo "Next List"
>----
>[user@host]~$ ./sample.sh
>./sample.sh: line2: a:readonly variable
>Next List
>[user@host]~$
>
>P.S. при чтении/переводе man`а по bash следует быть внимательнее - под command
>может подразумеватся не только отдельная команда, но и список команд. Рекурсивное
>определение command: command | (command op command)
>и фраза "the command exits with a non-zero status" относится сразу ко
>всему списку.
>P.P.S: Благадорю за конструктивную беседу

Vnimatelnost to4no vazna. Sam 4asto stradaju po pri4ine eje otsutstvija.

P.S. I vam spasibo.

  Рекомендовать в FAQ | Cообщить модератору | Наверх

7. "обработка результата команды ping"
Сообщение от denn emailИскать по авторуВ закладки(??) on 22-Сен-04, 12:57  (MSK)
>есть задача - написать скрипт, чтобы обрабатывал результат команды ping, если пинг
>идет - делай это, если не идет-делай это. Не подскажите как
>это реализвать?

у меня так работает.
часть кода..
ping -n -c 10 ${ADDR} >/dev/null 2>&1

        if [ $? -ne 0 ]; then
                echo "ALERT: ${ADDR} is down, I will reset interface
        fi

  Рекомендовать в FAQ | Cообщить модератору | Наверх

8. "обработка результата команды ping"
Сообщение от denn emailИскать по авторуВ закладки(??) on 22-Сен-04, 12:58  (MSK)
>>есть задача - написать скрипт, чтобы обрабатывал результат команды ping, если пинг
>>идет - делай это, если не идет-делай это. Не подскажите как
>>это реализвать?
>
>у меня так работает.
>часть кода..
>ping -n -c 10 ${ADDR} >/dev/null 2>&1
>
>        if [ $? -ne
>0 ]; then
>            
>    echo "ALERT: ${ADDR} is down, I will
>reset interface
>        fi
уточню.
на шел
  Рекомендовать в FAQ | Cообщить модератору | Наверх

10. "обработка результата команды ping"
Сообщение от _KAV_ Искать по авторуВ закладки(ok) on 22-Сен-04, 13:09  (MSK)
Есть утилита fping, которая специально для скриптов и предназначена.. возвращает кучу кодов в зависимости от результата
  Рекомендовать в FAQ | Cообщить модератору | Наверх

15. "обработка результата команды ping"
Сообщение от Azazelo Искать по авторуВ закладки(??) on 22-Сен-04, 17:08  (MSK)
>Есть утилита fping, которая специально для скриптов и предназначена.. возвращает кучу кодов
>в зависимости от результата


#!/bin/sh
ip=$1

i=`ping $ip -c 1 -i 1 -q |grep packet |awk '{print $7}'|sed 's/[^0-9]//g'`
if [[ $i != 100 ]]
then echo OK
else echo "ISP MUSTDIE"
fi

usage
%sh probeping xx.xx.xx.xx-ipofmydearISP

вместо echo OK |echo "ISP MUSTDIE"
вставляешь свой скрипт поднимаюший соединение или что там есть

правдa тестирование выяснило некоторые шероховатости , но я думаю как пример сойдет

ну и в конце правишь crontab на нужное тебе время.


а это в помошь начинаюшим
http://gazette.linux.ru.net/rus/articles/index-abs-guide.html

y me rabotaet tak.

  Рекомендовать в FAQ | Cообщить модератору | Наверх


Удалить

Индекс форумов | Темы | Пред. тема | След. тема
Пожалуйста, прежде чем написать сообщение, ознакомьтесь с данными рекомендациями.




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2025 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру