Привет, подскажите почему при выходе из цикла переменная пустая, а во время отработки все ок.
cat ${TBLIST}| while read tb; do
IGNORTB=${IGNORTB}" --ignore-table="${DBNAME}.${tb}
echo $IGNORTB
done
echo $IGNORTB
exit
Потому что цикл выполняется в сабшелле (отдельном процессе).
> Потому что цикл выполняется в сабшелле (отдельном процессе).Понял спасибо.
>> Потому что цикл выполняется в сабшелле (отдельном процессе).
> Понял спасибо.[Solved]
for tb in `cat $TBLIST`; do
IGNORTB=$IGNORTB" --ignore-table="$DBNAME.$tb
done
> [Solved]
> for tb in `cat $TBLIST`; do
> IGNORTB=$IGNORTB" --ignore-table="$DBNAME.$tb
> doneНу и хорошо. На самом деле равноценная замена такая:
>>>cat ${TBLIST}| while read tb; do
>>>donewhile read tb; do
done < ${TBLIST}Но если не видно разницы, то и так хорошо...
...
И как бы зная "волшебное" слово субшел, одним движением гугля находятся ---
http://opennet.ru/openforum/vsluhforumID9/8117.html
http://opennet.ru/openforum/vsluhforumID9/7907.html
http://opennet.ru/openforum/vsluhforumID9/6177.htmlИ всякие :) http://opennet.ru/docs/RUS/bash_scripting_guide/c12330.html