The OpenNET Project / Index page

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




Версия для распечатки Пред. тема | След. тема
Новые ответы [ Отслеживать ]
bash откидывает  ведущие нули, как запретить, !*! nikos, 24-Июн-09, 13:05  [смотреть все]
то есть  скрипт получает по snmp текстовое  значение вида  005  или 607  или 5  при этом для дальшейшей логики  действий  005  и 5  разные значения. Как убедить это  не откидывать  ведущие 0 ? ( то есть оставлять переменную текстом)
  • bash откидывает  ведущие нули, как запретить, !*! Pahanivo, 14:06 , 24-Июн-09 (1)
    >то есть  скрипт получает по snmp текстовое  значение вида  
    >005  или 607  или 5  при этом для
    >дальшейшей логики  действий  005  и 5  разные
    >значения. Как убедить это  не откидывать  ведущие 0 ?
    >( то есть оставлять переменную текстом)

    научится писать скрипты? ))

    • bash откидывает  ведущие нули, как запретить, !*! nikos, 14:36 , 24-Июн-09 (2)
      >>то есть  скрипт получает по snmp текстовое  значение вида  
      >>005  или 607  или 5  при этом для
      >>дальшейшей логики  действий  005  и 5  разные
      >>значения. Как убедить это  не откидывать  ведущие 0 ?
      >>( то есть оставлять переменную текстом)
      >
      >научится писать скрипты? ))

      Не поверите -  совсем не первый  скрипт, несколько десятков работают на боевых серверах. С тем, что  явную цифру  надо воспринять как текст столкнулся в первый  раз.
      Возможно я не прав, но  вся найденная информация  говорит -  Bash сам определяет тип переменной, меняя его в зависимости от значений.
      вот такой извратный  Bash там стоит, что  
      f="0001"; echo $f
      выводит 1
      на локальной  машине  все  нормально - и в ответ выводится
      0001
      попробую поднять версию до текущей - может полегчает


      • попробуй джага-джага...., !*! Andrey Mitrofanov, 15:11 , 24-Июн-09 (4)
        >вот такой извратный  Bash там стоит, что
        >f="0001"; echo $f
        >выводит 1
        >на локальной  машине  все  нормально - и в ответ
        >выводится
        >0001
        >попробую поднять версию до текущей - может полегчает

        Попробуй man bash, что полегчает не обещаю.

        $ f="0001"; echo $f
        0001
        $ declare -i f="0001"; echo $f
        1
        $ declare +i f="0001"; echo $f
        0001
        $ _

        • попробуй джага-джага...., !*! nikos, 16:14 , 24-Июн-09 (5)
          >[оверквотинг удален]
          >
          >Попробуй man bash, что полегчает не обещаю.
          >
          >$ f="0001"; echo $f
          >0001
          >$ declare -i f="0001"; echo $f
          >1
          >$ declare +i f="0001"; echo $f
          >0001
          >$ _

          Уф и правда  полегчало ...  огромное  спасибо. man bash это конечно хорошо, но слишком безразмерно ( зная о declare  можно и прочитать man  в этой части)


          • впрочем, по форумам побираться - тоже вариант, !*! Andrey Mitrofanov, 16:34 , 24-Июн-09 (6)
            >man bash это конечно хорошо, но слишком безразмерно ( зная о declare  можно и прочитать man  в этой части)

            Встани и и... Не то. Умри, неве... Опять не то. .........

            Не поверишь, я не _знал_, но нашёл.

            Гипотеза: проблема string vs integer, man bash -> поиск integer, увидел arythm.expantion и integer attribute of the variable set... продолжил поиск по "attribu", увидел ссылки на "declare -i", пошёл к его определению и почитал, запустил bash - нарисовал пример, что выше (да, я его редактировал -- в реале было на пару команд больше, пока игрался).

            И никакого фокуса, правда? (+Никакого ответа на реплику №0 "аааа, памагитя. у меня тут. вот. блин!". Есть код -- его можно и поотлаживать.)

            ---"Учись, студент!" ... О, вот оно.

  • bash откидывает  ведущие нули, как запретить, !*! phpcoder, 15:03 , 24-Июн-09 (3)
    >то есть  скрипт получает по snmp текстовое  значение вида  
    >005  или 607  или 5  при этом для
    >дальшейшей логики  действий  005  и 5  разные
    >значения. Как убедить это  не откидывать  ведущие 0 ?
    >( то есть оставлять переменную текстом)

    printf '%03d\n' 5





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

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