Вот более простой способ воспроизвести проблему:
echo "Hello"; whoami # Shows output from both commands
echo "World"; top -n 1 # Shows output only from top
Это происходит потому, что top
- это программа ncurses, которая выводит последовательности управления терминалом, чтобы рисовать себя в полноэкранном режиме, перезаписывая все, что уже есть на экране. Несмотря на то, что все данные попадают в файл, в текстовом редакторе будет отображаться много гиббери sh, а если вы его cat
, последовательности терминала перезапишут вывод других команд.
Вы можете использовать top -b -n 1
, чтобы вместо этого получить вывод в виде открытого текста.