В общем, есть скрипт: #!/bin/sh items="a1 b2 c3 d4 e5 f6 g7 h8 i9" for i in $items; do echo $items echo $i [ "$i" = b2 ] && items=$(echo $items |sed -r s/d4\(' '\|$\)//) && echo "removed d4" [ "$i" = f6 ] && items=$(echo $items |sed -r s/i9\(' '\|$\)//) && echo "removed i9" echo done Смысл в том, что в цикле изменяется строка, по которой проходит цикл, чтобы исключить некоторые элементы. Проблема в том, что цикл обращается к переменной только один раз, когда начинает работу, т.к. изменение значения переменной не влияет на ход выполнения. Можно это как-то изменить? Или есть какое-то другое решение? В реальной задаче в цикле вызываются функции, которые могут рекурсивно выполнить дейтсвия над значением строки, и повторно их выполнять уже не надо (записывать отработанные элементы в другую строку не очень хочется).
Ответ на:
комментарий
от fura13
Ответ на:
комментарий
от sdio
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.
Похожие темы
- Форум Знатокам BASH (возможно и AWK) (2006)
- Форум [sh]Значение переменной в цикле (2011)
- Форум Bash не сбрасывается значение перменной (2022)
- Форум Эмулирование среды Cron. Чего еще не хватает? (2013)
- Новости Книга «Командная строка Linux. Полное руководство. 2-е межд. изд.» (2021)
- Форум awk и Sed от regexp до конца файла. (2012)
- Форум помогите с созданием скрипта с использованием ключей. (2017)
- Форум Вызов shell-скрипта из php-скрипта (2017)
- Форум Zimbra архивация старых сообщений (2016)
- Форум Проверка наличия соединения с интернетом (2013)