Как я могу запустить и завершить команду script () linux из Perl? - PullRequest
0 голосов
/ 12 февраля 2010
#!/usr/bin/perl
$sim = "multiq";
`make SCHED=$sim`;
`script > scripter`;
`echo hi`;
print pack("c", 04);
~

Этот скрипт зависает при вызове скрипта. Не уверен, как заставить скрипт perl продолжать работать.

Ответы [ 4 ]

5 голосов
/ 12 февраля 2010

Обратите внимание, что обратные галочки (‘‘) запускают команду и возвращают ее вывод. Если вы собираетесь игнорировать вывод, используйте system как в

system("make SCHED=$sim") == 0 or die "$0: make exited " . ($? >> 8)

Если вы хотите запустить и забыть программу (то есть запустить ее в фоновом режиме, не заботясь о том, когда она завершится), вы можете использовать

system("script >scripter &");
1 голос
/ 13 февраля 2010

вы можете захотеть взглянуть на Ожидайте для управления интерактивным сеансом

1 голос
/ 13 февраля 2010

Вы должны запустить все это в одном дочернем процессе, если вы хотите, чтобы он все взаимодействовал. См. perlipc для различных способов справиться с этим.

0 голосов
/ 30 мая 2013

backticks (‘‘) запускают команду и возвращают ее вывод. Таким образом, вы можете сохранить и управлять ею дальше. Если вы хотите игнорировать вывод, используйте system (). Также, если вы хотите запустить какой-либо процесс в фоновом режиме, используйте & в префиксе процесса. Например, вы хотите запустить Gimp, используя ваш скрипт, просто скажите

system("gimp &");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...