В общем, есть скрипт:
#!/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)