- 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
|