Главная страница


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)
 
 

Вернуться к списку тем, сортированных по: возрастание даты  уменьшение даты  тема  автор 

 Тема:    Автор:    Дата:  
 Re: Скрипт... - Ох, спасибо!!!   yx   09 Apr 2002 00:08:05 
 Re: Скрипт... - Ох, спасибо!!!   Valentin Nechayev   10 Apr 2002 09:36:01 
 Re: Скрипт... - Ох, спасибо!!!   yx   11 Apr 2002 02:48:13 
 Re: Скрипт... - Ох, спасибо!!!   Valentin Nechayev   11 Apr 2002 09:32:00 
Архивное /ru.unix.bsd/150682508f530.html, оценка 1 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional