У меня есть скрипт bash, который выглядит следующим образом:
name=""
while read i; do
if [ -z "$name" ]; then
name="$i"
else
echo "$i"
fi
done < <(python tmp.py)
echo "$name"
, где tmp.py
выглядит примерно так:
import time
for i in range(5):
print(i)
time.sleep(.5)
, но проблема в том, что скрипт bash ждетподоболочка python завершается до запуска цикла while.Есть ли способ прочитать выходные данные subshell при генерации каждой строки?Мне нужно иметь возможность изменять внешнюю среду сценариев внутри цикла (например, значение name
), чтобы цикл while не мог быть подоболочкой.Я использую Bash 5.0.