Допустим, у вас есть ряд сценариев, которыми вы не владеете и, следовательно, не можете изменять, которые могут порождать фоновые процессы без перенаправления stdout и stderr.Я заметил, что в bash, то есть вывод, как показано в следующем примере, не возвращается, когда скрипт выполняется, если фоновый процесс все еще выполняется (и имеет дескрипторы открытых файлов для stdout или stderr).
./runme.sh 2>&1| tee runme.out
Где runme.sh
определяется как:
#!/bin/bash
# Start a fake daemon
perl -e 'while(1) { sleep(1) }' &
printf "Enter your name: "
read name
echo "Goodbye $name"
Как я могу запускать подобные сценарии в bash, сохраняя все выходные данные и возвращаясь к приглашению после завершения сценария?