Здравствуйте.
Какая то проблемма с областью видимости переменной.
Есть такой скриптик, он в цикле делает обработку строк файла и в зависимости от значений в этом файле устанавливает переменную типа как флаг ошибки. Посмотрите пожалуста, в первом варианте не работает (изменённое состояние RETVAL не cохраняется после выхода из цикла), а во втором работает -- почему???
Скрипт:
#!/bin/sh
cf()
{
RETVAL=3
echo $RETVAL
cat par.txt | grep -v "#" | while read line # 1 variant
#while read line # 2 variant
do
RETVAL=1
i=`expr $i + 1`
echo $RETVAL
done
echo $RETVAL
#return $RETVAL
}
cf # 1 variant
#cf < par.txt # 2 variant
#echo $RETVAL
Файл (например так):
1
2
|