LINUX.ORG.RU

Ответ на: комментарий от UVV

VARIABLE="" find | while read V ; do VARIABLE="fuck" done echo $VARIABLE

Выводит пустое место. Как выставить $VARIABLE в цикле?

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

В данном случае из-за канала while запускается в отдельном процессе.

Можно записать в значение в файл и прочмнать его после цикла:

find ... | while read V ; do
   echo "fuck" > /tmp/file.$$
done
VARIABLE=`cat /tmp/file.$$`
rm /tmp/file.$$
echo $VARIABLE

Либо таким образом:

VARIABLE=$(find ... | while read V ; do
                            echo foo
                      done | tail -1)
echo $VARIABLE
======================================
(на zsh вариант автора темы работает).

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

Смотря какая задача стоит. Если надо, чтобы в i запихивались имена файлов с пробелами, не прокатит.

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