в одном дочернем процессе устанавливается переменная, в другом дочернем проессе она должна быть видна, но этого не происходит.
глобальная переменная array устанавливается до вызова main, как вы видите по sleep'у, но после вызова main её как будто бы и нет. WTF???
создаётся ощущение, что функция выполняется заблаговременно, вставка eval не помогла, как ещё можно вызвать main, чтобы вывести переменную?
#!/bin/bash
init() {
array=("Spoofing" "Voglea")
}
main() {
if [ -z "${array[@]}" ]; then
echo ВОТ ТУТ, ТУТ БЫЛА! И ГДЕ ОНА???
else
printf '%s\n' "${array[@]}"
fi
}
(
sleep 1
init
) &
(
sleep 3
main
) &
sleep 5
Перемещено Pinkbyte из general