LINUX.ORG.RU

bash. array. определить наличие элемента.


0

2

всем привет.

по сабжу нашел такой способ: http://superuser.com/questions/195598/test-if-element-is-in-array-in-bash

но не подходит, ибо на bash версии 3 не работает.

еще есть варианты с grep`ом. а без grep`а это можно как-то реализовать средствами самого bash`а?

нашел еще варианты влоб, типа перебора всех элементов и сравнения. но как-то такой способ кажется глупым, что ли...

благодарен.

★★★

По-моему проблема в том, что bash версии 3 не поддерживает ассоциативные массивы. С обычными массивами

if [[ ${array[$index]} ]]
вполне работает.

gman ()

нашел еще варианты влоб, типа перебора всех элементов и сравнения. но как-то такой способ кажется глупым, что ли...

А почему «глупым»?

Если не нравится решение «в лоб», то сам напиши функцию быстрого поиска элемента в массиве.

еще есть варианты с grep`ом. а без grep`а это можно как-то реализовать средствами самого bash`а?

А grep чем тебе не «средство bash'а»? Утилиты на то и созданы, чтобы такого рода задачки в шелле решать.

OldFatMan ()
Ответ на: комментарий от OldFatMan

функцию быстрого поиска

предлагаете на баше реализовать хеш-таблицу? =)

А grep чем тебе не «средство bash'а»?

как бы это так высказаться... программа у меня нынче - bash.

в общем, так по глупому и поступил, реализовал в лоб)

всем спасибо.

niXman ★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.