Моя проблема в том, что когда я запускаю свой скрипт, он продолжается после следующей команды:
top -b > output.txt
Данные на машине довольно большие, поэтому требуется некоторое время, чтобы получить полный стек статистики ЦП из вывода top
. Он выводит часть мгновенно, а затем требуется некоторое время, чтобы получить остальное. (Я проверил, просто запустив команду top в терминале отдельно).
Мне нужно дождаться, пока будут получены все статистические данные ЦП и т. д. (скажем, 20 секунд), а затем top
по истечении 20 секунд извлечь выходные данные и вывести их в output.txt.
Я знаю, что сон используется для задержек, однако, похоже, в данном случае он необходим где-то конкретно.
решение1
Я очень сомневаюсь, что машина из этого тысячелетия будет тратить 20 секунд на генерацию одной top
таблицы. Скорее всего, проблема в том, что вы сказали top
печатать вывод с интерваламинавсегда, и этот вывод не записывается немедленно из-за буферизации. Попробуйте top -b -n1 > output.txt
вместо этого.
решение2
Попробуйте использовать wait
команду.
Так:
top -bn 1 > output.txt & wait
Прежде чем двигаться дальше, следует дождаться завершения этого процесса.