LINUX.ORG.RU

Изменить значение переменной родительского процесса

 


0

1

Доброго дня господа.
Побеспокою сегодня вас еще раз.
Никак не могу нагуглить и наманить сабж, при ситуации:

VAR1="0"
function f(){
    VAR1=$(($VAR1+1))
    echo $VAR1
    #дальше любая работа
}
for var in $(seq 1 3);do
    f &
done
Как полагается глобально VAR1 для форка в ro.
Но мне таки нужно что бы дочерний процесс вернул VAR1 еще до своего окончания, для того, что бы перед вторым форком, VAR1 приняла значение 1, и так далее.
Экспорты мне не помогли.
Задача кажется из разряда abc, но как уже написал, сам не осилил.
Буду очень благодарен адекватно ответившим.

Я не понял, чего ты хочешь, но изменить переменную родительского процесса можно только через отладчик. А тебе придется использовать FIFO.

tailgunner ★★★★★
()
Ответ на: комментарий от kostik87

Сейчас так и делаю.
Но на светлое будущее хотелось бы избежать этого костыля.

Spirit_of_Stallman ★★★
() автор топика

а если присвоить через второй дескриптор? как-то так

d=(читаем stderr)f&

а в функции

echo $VAR > stderr

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

ещё можно через сигналы и их обработку сделать

visual ★★★
()

У процессов переменные окружения не являются общими. Они могут иметь одинаковые имена, это их ни к чему не обязывает. При форке для дочернего процесса клонируются переменные помеченные для экспорта, вот и всё.

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