The OpenNET Project / Index page

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

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

"И снова про Bash."  
Сообщение от stakado email(ok) on 12-Мрт-09, 17:09 
Здравствуйте!
Подскажите, пожалуйста, каким образом можно узнать длину переменной силами bash'а.
В частности надо сделать штуку, что если длина переменной меньше 5, то в конец этой переменной надо добавить таб, если больше 5, то не добавлять.
В общем-то если будет получен ответ на первый вопрос, то на второй ответ не требуется.
Высказать мнение | Ответить | Правка | Cообщить модератору

 Оглавление

Сообщения по теме [Сортировка по времени | RSS]


1. "man bash -- каждый раз что-то новое!"  
Сообщение от Andrey Mitrofanov on 12-Мрт-09, 17:23 
((${#VAR}<5)) && VAR="$VARтаб"

>сли длина переменной меньше 5, то в
>, если больше 5, то не

А если _равна_ 5??! :-P

И да man bash и "на до же себя заставлять!"(тм).

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

2. "И снова про Bash."  
Сообщение от gaa (ok) on 12-Мрт-09, 17:28 
>Подскажите, пожалуйста, каким образом можно узнать длину переменной силами bash'а.

len=`printf "%s" "$var" | wc -l`

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

3. "И снова про Bash."  
Сообщение от gaa (ok) on 12-Мрт-09, 23:50 
>>Подскажите, пожалуйста, каким образом можно узнать длину переменной силами bash'а.
>
>len=`printf "%s" "$var" | wc -l`

wc -c конечно же

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

5. "И снова про Bash."  
Сообщение от stakado email(ok) on 13-Мрт-09, 08:44 
>>>Подскажите, пожалуйста, каким образом можно узнать длину переменной силами bash'а.
>>
>>len=`printf "%s" "$var" | wc -l`
>
>wc -c конечно же

Спасибо большое, решение с помощью wc помогло. Правда и изучение Adv. bash scripting guide помогло бы, но поздно :).

А вот совсем детский вопрос:
Есть массив строк ip[0]=10.10.10.10, ip[1]=20.20.20.20.
Как мне обратиться к 1-му символу 2-го элемента массива? (в данной ситуации цифра 2).
Перепробовал всякие вариации - ${ip[$i][$j]}, ${ip[${i[$j]}} и подобные, но нужного результата не добился.
Подскажите, плиз!

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

6. "И снова про Bash."  
Сообщение от Andrey Mitrofanov on 13-Мрт-09, 10:41 
>Спасибо большое, решение с помощью wc помогло.
>Правда и изучение Adv. bash scripting guide помогло бы, но поздно :).

Я настаиваю: man bash. Возможно, info bash, если он есть локально...
Впрочем, ABS может оказаться проще читать -- иллюстрированный гуиде с песнями и плясками. Но для _понимания_ песен-плясок нужно понимание man bash _и_ опыт работы с...

>Есть массив строк ip[0]=10.10.10.10, ip[1]=20.20.20.20.
>Как мне обратиться к 1-му символу 2-го элемента массива? (в данной ситуации
>цифра 2).

$ ip[0]=10.10.10.10; ip[1]=20.20.20.20
$ echo "${ip[1]:0:1}"
2
$ _


>Перепробовал всякие вариации - ${ip[$i][$j]}, ${ip[${i[$j]}} и подобные, но нужного результата не
>добился.

Срочно начинай писать автоматичный генератор вариаций и его выход - башу, обязательно с  записью лога. И - читать-читать-читать логгг. :/

>Подскажите, плиз!

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

8. "И снова про Bash."  
Сообщение от stakado email(??) on 13-Мрт-09, 10:48 
>$ ip[0]=10.10.10.10; ip[1]=20.20.20.20
>$ echo "${ip[1]:0:1}"
>2
>$ _

Блин, заффтыкал... так оно и делается, спасибо!


Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

7. "и с песнями-плясками!"  
Сообщение от Andrey Mitrofanov on 13-Мрт-09, 10:44 
>Подскажите, плиз!

$ for((i=0;i<11; i+=3)); do for((j=1;i+j<11; j+=3)); do echo "${ip[1]:i:j}"; done; done
2
20.2
20.20.2
20.20.20.2
2
20.2
20.20.2
2
20.2
2
$ _

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

4. "И снова про Bash."  
Сообщение от GloryS (??) on 13-Мрт-09, 08:03 
Блин...Когда же народ начнет читать (в данном случае Advanced Bash Scripting)
до того, как задать вопрос...

String Length

${#string}

expr length $string

expr "$string" : '.*'

   stringZ=abcABC123ABCabc
  
   echo ${#stringZ}                 # 15
   echo `expr length $stringZ`      # 15
   echo `expr "$stringZ" : '.*'`    # 15

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

Архив | Удалить

Индекс форумов | Темы | Пред. тема | След. тема
Оцените тред (1=ужас, 5=супер)? [ 1 | 2 | 3 | 4 | 5 ] [Рекомендовать для помещения в FAQ]




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

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