Другим хорошим инструментом может бытьsed
:
sed -n '/shop4_0_Log0000331881\.Z$/q;p' test.out
Это одна из ловушек при использовании оболочки, имитирующей API ОС. Это создает путаницу. В этом случае вы путаете ожидание()(linux API )с ожиданием(функцией bash ).
Проще говоря, Bash позаботится о процессах сбора данных за вас, обычно вам не нужно об этом думать. Команда wait
bash не влияет на процессы сбора данных.
Когда ваше дочернее задание завершится, bash будет проинформирован сигналом SIGCHLD . Когда это произойдет, bash на мгновение остановит все, что он делал, и пожнет остановленный дочерний элемент. Затем он возвращается к тому, что он делал.
Использование вами «&
» потребовало от родительского процесса перевести «sleep 5
» в фоновый режим, поэтому родительский процесс будет собирать sleep 5
.