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