Рейтинг:0

Как в Linux/bash предотвратить асинхронные команды?

флаг vn

У меня есть make-файл, который вызывает внешние скрипты сборки.

Некоторые из этих скриптов (которые я не могу изменить) используют разветвленные/фоновые команды (или асинхронные, как их называет руководство bash)

Это означает, что следующая строка в make-файле может начаться до того, как завершится какая-либо из предыдущих команд, создавая состояние гонки.

Мне как-то нужно либо подождать разветвленного процесса и всех его дочерних элементов, либо просто предотвратить любую команду или подкоманду последующих сценариев, работающих в фоновом режиме.

Есть ли способ предотвратить это, то есть отключить суффикс амперсанда «&» для команд в текущей и дочерней подоболочках?

Рейтинг:0
флаг in

Один из возможных способов — создать копию этих скриптов и удалить конструкции с помощью команды make some для запуска в фоновом режиме. Имейте в виду, что вы можете не захотеть удалить все & автоматически, потому что вы можете испортить такие команды, как:

команда && команда 

Другой возможный способ - запросить разрешение на редактирование скриптов (вместо их копирования)

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.