Как использовать одну и ту же переменную bash между родительской и дочерней оболочками

У меня есть сценарий bash, подобный следующему:


function test
{
   running=$(( $running - 1 ))
}

running=0
test &
echo $running


Поскольку тестовая функция запускается во вспомогательной оболочке, она не работает не влияет на текущую переменную, и на экране отображается 0. Мне нужна вспомогательная оболочка, чтобы иметь возможность изменять переменные родительской оболочки, как это можно сделать? Я пробовал экспорт, но безрезультатно.

РЕДАКТИРОВАТЬ Спасибо за все полезные ответы. Причина, по которой я хочу запускать эту функцию в фоновом режиме, состоит в том, чтобы разрешить одновременный запуск нескольких функций. Мне нужно иметь возможность перезвонить родительскому сценарию, чтобы сообщить ему, когда все функции будут завершены. Я использовал pid для этого, но мне не нравится проверять, постоянно ли работают несколько процессов в цикле.

6
задан toc777 9 December 2010 в 11:58
поделиться