|
|
ru.unix.bsd- RU.UNIX.BSD ------------------------------------------------------------------ From : yx 2:5020/400 09 Apr 2002 00:08:05 To : Eugene Grosbein Subject : Re: Скрипт... - Ох, спасибо!!! -------------------------------------------------------------------------------- Eugene Grosbein <Eugene.Grosbein@f1.n5006.z2.fidonet.org> wrote: >> если не касаться ничего другого, только отн-но шелл: >>> +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++= >>> #!/bin/sh >> # в первой строке, если не `#!/специфик/шелл', лучше >> -#!/bin/sh >> +: > > Это почему? Вполне нормально /bin/sh для POSIX. > начиная скрипт с `:' (или любым другим отличным от `#' (`:' хороший выбор) - скрипт всегда будет исполнен bourne шеллом (sh) (или борн-совместимым) независимо от логин шелла, и независимо от того что за дефолтный #!/bin/sh шелл в системе. Кроме того, на древних сист-х отработается, а с ksh получим и более быстрое исполнение, чем в случае с #!/bin/sh :) Bourne shell scripts should have a ":" as first line. точка. более подробное "почему" см. в comp.unix.shell архивах. >> # обычно для утилит вып-х осн. функции записывают >> +: ex. >> +: ${PING:=ping} >> +: ${AWK:=awk} >> +: ${GREP:=grep} > Зачем? Опять же для POSIX. > вроде бы понятно - гибче. >> # какая-нить минимальная проверка что на входе, ex >> +[ $# -ne 1 ] && { >> + echo use: `basename "$0"` ... >> + exit 1 >> +} > > Угу. Правда, с if было бы читабельнее. >>> if (ping -c 3 $1 > /dev/null) then >>> { >>> #Ping OK. >>> } >>> else >>> { >> # maybe >> action || { > > IMHO, лучше просто > > if (ping -c 3 $1 > /dev/null) then > #Ping OK. > else > ... > fi > > Hикаких скобок не надо. >>> # No ping. >>> echo ModemKiller: Time out trying to ping $1 >>> >> отн-но echo: если не пользоваться `\' esc_chars, тогда пользоваться можно. >> в общем случае использование echo - deprecated. > > Это почему? > это насколько я помню из рекомендаций susv2 (и susv3) связано с различиями в отработке escape символов (c `\') различными реализациями echo (нп `\с'). (усуглубляя еще возможным различиями в отработке echo как builtin в каком-либо из shell, и системным /bin/echo) printf же, нп, стандартен (согласно sus). Использование `echo' - только если ничего из `\esc' не используется, и преимущественно в стартовых сист. скриптах. >>> echo ModemKiller: Reseting modem. >>> echo `date` --- Killing $1 >> $logfile >>> >>> kill -9 `ps -axw|grep ppp|grep $1|grep -v grep|awk '{print $1}'` >> >>> $logfile >> # maybe >> kill `ps axw | awk "/[p]pp.*$1/ {print \\$1}"` >> по моему слишком много >> лучше или средствами шелл, или хотя бы поменьше труб, тулзов, etc. > > И зачем это pid-файлы пишут? > здесь прокомментирован ">>.. только отн-но шелл" стиль, отн-но pppd файлов и подхода - см. пред. постинг. bye. -- Vladimir Yakovetsky --- ifmail v.2.15dev5 * Origin: Extreme Telecom (2:5020/400) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.unix.bsd/150682508f530.html, оценка из 5, голосов 10
|