Сохраняйте PID при запуске процессов:
pids=()
./w1 & pids+=( "$!" )
./w1 & pids+=( "$!" )
./w1 & pids+=( "$!" )
./w1 & pids+=( "$!" )
(предполагается оболочка сbash
-совместимым синтаксисом массива)
Теперь у вас есть PID в массиве pids
и вы можете получить к ним доступ как "${pids[0]}"
, "${pids[1]}"
и т. д.
Если вы используете обычный/bin/sh
:
set --
./w1 & set -- "$@" "$!"
./w1 & set -- "$@" "$!"
./w1 & set -- "$@" "$!"
./w1 & set -- "$@" "$!"
Теперь у вас есть PID в списке "$@"
и вы можете получить к ним доступ как "$1"
, "$2"
и т. д.
Специальное значение "$!"
будет PID последней запущенной фоновой команды.
Простой способ — использовать less
в окне эмулятора терминала, просто перенаправив вывод программы,
program-name | less
например, если вы хотите сохранить цвета,
ls -l --color ~/* | less -r
и когда вы выходите из less (с помощью 'q' ), предыдущий диалог присутствует.
Многие новые экраны текстового режима не сохраняют предыдущий диалог, но вы можете установить и использовать screen
.
screen
# run some programs here
screen
# run the program from which you want temporary output saved here
exit
и вы вернетесь к «первому экрану» и его диалогу.
screen
— это продвинутая программа, и я знаю только некоторые ее рудиментарные возможности, но я проверил, что она работает именно так.