У меня есть сценарий bash, подобный следующему:
function test
{
running=$(( $running - 1 ))
}
running=0
test &
echo $running
Поскольку тестовая функция запускается во вспомогательной оболочке, она не работает не влияет на текущую переменную, и на экране отображается 0. Мне нужна вспомогательная оболочка, чтобы иметь возможность изменять переменные родительской оболочки, как это можно сделать? Я пробовал экспорт, но безрезультатно.
РЕДАКТИРОВАТЬ Спасибо за все полезные ответы. Причина, по которой я хочу запускать эту функцию в фоновом режиме, состоит в том, чтобы разрешить одновременный запуск нескольких функций. Мне нужно иметь возможность перезвонить родительскому сценарию, чтобы сообщить ему, когда все функции будут завершены. Я использовал pid для этого, но мне не нравится проверять, постоянно ли работают несколько процессов в цикле.