如何从Perl运行并结束script()linux命令?

时间:2010-02-12 19:20:16

标签: linux perl command-line scripting

#!/usr/bin/perl
$sim = "multiq";
`make SCHED=$sim`;
`script > scripter`;
`echo hi`;
print pack("c", 04);
~

调用脚本时,此脚本会挂起。不知道如何让perl脚本继续运行。

4 个答案:

答案 0 :(得分:5)

请注意,反引号(‘‘)运行命令并返回其输出。如果您要忽略输出,请使用

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

如果你想要发射一个程序(即在后台启动它而不用担心它什么时候完成),你可以使用

system("script >scripter &");

答案 1 :(得分:1)

如果您希望所有进程都进行交互,则必须在一个子进程中运行该进程。有关处理此问题的各种方法,请参阅perlipc

答案 2 :(得分:1)

您可能希望查看Expect来控制互动会话

答案 3 :(得分:0)

反引号('')运行命令并返回其输出。因此,您可以进一步存储和操作它。如果要忽略输出,请使用system()。此外,如果您想在后台使用&在进程的前缀中。例如,您希望使用您的脚本启动Gimp,只需说

system("gimp &");