Описание тега fruit-trees
Я пытаюсь фильтр один массив из другого массива. То есть, я пытаюсь создать третий массив с логической не-перекрестке.
Лучшее, что я могу сказать, Похоже, что этот блок кода не совпадает, и нашли
, остается низким:
нашли=0
...
если [ "$флаг" = "$фильтруют" ]; затем
нашли=1
интернет
Я попытался с помощью ==
с тем же результатом. Я тоже пробовала х
трюк, но это не работает (это даже здесь?): если [ "Х$флаг" = "х$фильтруют" ]
.
Я ограничен Баш 3. Я использую bash-потому что я немного знаю его. Я ограничен 3, потому что скрипт работает на ОС Х тоже. Потому что Баш 3, я думаю, мне не хватает многих полезных функций, как всех HashMap.
Почему строки не совпадают?
Вот соответствующий фрагмент. CXXFLAGS
может быть установлен Пользователем в его/ее окружающей среды. Я пытаюсь удалить флаги, что мы явно тест в наш тестовый скрипт, как -DDEBUG
, -DNDEBUG
и оптимизации как -О0
и О1
.
Предпочтительный флаги # уважение пользователей, но фильтр то тест expliclty
FILTERED_CXXFLAGS=("-DDEBUG", "-DNDEBUG", "-О0", "О1", "-О2", "-О3", "ОС", "-ов")
# Дополнительные CXXFLAGS мы не фильтр
RETAINED_CXXFLAGS=("")
если [ ! -з "CXXFLAGS" ]; затем
TEMP_CXXFLAGS=$(Эхо "$CXXFLAGS" | е с/\([[:пробел:]]*=[[:пробел:]]*\)/=/г')
ИФС=' ' читать -р-а TEMP_ARRAY <<< "$TEMP_CXXFLAGS"
для флага в "${TEMP_ARRAY[@]}"
делать
Эхо "флаг: $флаг"
нашли=0
для отфильтрованных в "${FILTERED_CXXFLAGS[@]}"
делать
Эхо "отфильтровано: $фильтруют"
если [ "$флаг" = "$фильтруют" ]; затем
Эхо "найдено: $флаг"
нашли=1
интернет
сделано
Эхо "найдено: $нашли"
если [ "$нашли" -эквалайзер "0" ]; затем
Эхо "сохраняя $флаг"
RETAINED_CXXFLAGS+=($ТЭМП)
еще
Эхо "выкидывание $ТЭМП"
интернет
сделано
интернет
Вот трассировка с эхо
на месте. Тестовых данных был просто экспортировать CXXFLAGS="-DNDEBUG -Г2 -О3 -МФПУ=неон"
Флаг: -DNDEBUG
Отфильтровано: -DDEBUG,
Отфильтровано: -DNDEBUG,
Отфильтровано: -О0,
Отфильтровано: -О1,
Отфильтровано: -О2
Отфильтровано: -О3,
Отфильтровано: -ОС
Отфильтровано: -ОГА
Найдено: 0
Сохранение -DNDEBUG
Флаг: -Г2
Отфильтровано: -DDEBUG,
Отфильтровано: -DNDEBUG,
Отфильтровано: -О0,
Отфильтровано: -О1,
Отфильтровано: -О2
Отфильтровано: -О3,
Отфильтровано: -ОС
Отфильтровано: -ОГА
Найдено: 0
Сохранение -Г2
Флаг: -О3
Отфильтровано: -DDEBUG,
Отфильтровано: -DNDEBUG,
Отфильтровано: -О0,
Отфильтровано: -О1,
Отфильтровано: -О2
Отфильтровано: -О3,
Отфильтровано: -ОС
Отфильтровано: -ОГА
Найдено: 0
Сохранение -О3
Флаг: -МФПУ=неон
Отфильтровано: -DDEBUG,
Отфильтровано: -DNDEBUG,
Отфильтровано: -О0,
Отфильтровано: -О1,
Отфильтровано: -О2
Отфильтровано: -О3,
Отфильтровано: -ОС
Отфильтровано: -ОГА
Найдено: 0
Сохранение -МФПУ=неон