[devel] О присваивании переменных в циклах на bash
Sergey Pinaev
=?iso-8859-1?q?dfo_=CE=C1_antex=2Eru?=
Вт Дек 27 11:19:32 MSK 2005
On Tue, 27 Dec 2005 11:07:35 +0300
Vitaly Lipatov <lav на altlinux.ru> wrote:
> Вот и не угадали - выведен она
Зачем угадывать? С | спавнится новый шелл.
> В /usr/bin/sisyphus_relink наблюдаем такой код:
> cat "$list" |while read n; do
> f="files/$rfiles/$n"
> [ -f "$f" ] || continue
> $debug ln -s $verbose "$r/$n" "$d/" || rc=1
> done
> return $rc
>
> получается rc тоже не присвоится и в коде ошибка?
Да, в родительском шелле rc будет не тот, который был
в шелле, исполняющем while.
> Но как же всё таки присваивать переменные внутри таких циклов?
Не делать таких циклов.
for n in `cat "$list"`; do ...
--
mail="Sergey Pinaev <dfo на antex.ru>"
url="http://`echo $mail | sed 's/.* <\(.*\)@\(.*\)>/\1.\2/'`"
Подробная информация о списке рассылки Devel