Передайте -F
(--format
) опция к способности для определения, какие поля отображены.
aptitude --disable-columns -F '%p %v' search '~A'
Из Python используйте apt_pkg
модуль от python-apt
пакет.
perl
может не быть самым соответствующим если IO::Pty
модуль установлен.
Во-первых, возможно, Вам не нужно ничто сложное, если given-thing-that-takes-long-time (gtttlt) может работать хорошо с каналами.
mkfifo input
nohup gtttlt <> input > output 2>&1 &
запускаться gtttlt
(вход от именованного канала, вывода в регулярный файл). Затем Вы присоединяете к нему с:
tail -f output & cat > input
Если бы каналы не сделают, и Вам нужен терминал, то Вы хотели бы использовать что-то, что может запустить псевдотерминал как expect
, zsh
zpty
, perl
IO::Pty
или sshd
:
mkfifo input
nohup ssh -tt localhost gtttlt <> input > output 2>&1
И присоединить:
stty raw -echo; tail -f output & cat > input
Обратите внимание, что это не похоже на реализацию screen
или tmux
. screen
и tmux
реализуйте эмулятор терминала. Когда Вы повторно прикрепляете, Вы видите содержание экрана того эмулятора терминала. Здесь, когда Вы повторно прикрепляете, Вы только видите последние 10 строк вывода (хотя можно корректироваться путем передачи a -n 123
опция к tail
). И мы просто передаем все данные терминалу хоста.
Это не точно, что Вы попросили, но я использую at
сделать это. Я часто запускаю команды на удаленных серверах от моего ноутбука и затем хочу завершить работу ноутбука, не теряя вывод команды. at
позволяет мне запускать задания в установленный срок, и я просто перенаправляю потоки вывода задания и потоки сообщений об ошибках в файлы.
Например, если я хочу работать my_script.pl
Я создам немного названного файла foo.txt
со следующим содержанием:
my_script.pl > out 2>er
и затем выполненный это с
$ at now < foo.txt
Я могу затем выйти из системы сервер, забрать домой мой ноутбук и проверить вывод ssh
луг к серверу и выполнению
$ tail -f er
или
$ tail -f out
Можно также дать at
задания от его оболочки (поражает CtrlD для выхода):
$ at now
warning: commands will be executed using /bin/sh
at> my_script.pl > out 2>er
at> <EOT>
job 10 at Thu Sep 5 00:39:00 2013
Как альтернатива "в" предложении выше, мне нравится этот лучше:
Как дополнение, можно перенаправить вывод в файл или именованный канал. К сожалению, я не думаю, что существует способ подключить процесс снова к Вашему терминалу.