#!/usr/bin/perl
$sim = "multiq";
`make SCHED=$sim`;
`script > scripter`;
`echo hi`;
print pack("c", 04);
~
該腳本在調用腳本時掛起。不知道如何讓perl腳本繼續運行。如何從Perl運行並結束script()linux命令?
#!/usr/bin/perl
$sim = "multiq";
`make SCHED=$sim`;
`script > scripter`;
`echo hi`;
print pack("c", 04);
~
該腳本在調用腳本時掛起。不知道如何讓perl腳本繼續運行。如何從Perl運行並結束script()linux命令?
請注意反引號(‘‘
)運行一個命令並返回其輸出。如果你要忽略輸出,使用system
在
system("make SCHED=$sim") == 0 or die "$0: make exited " . ($? >> 8)
如果你要發射後不管的程序(即在後臺啓動它,而不用擔心它完成的時候),你可以使用
system("script >scripter &");
如果你想讓它全部交互,你必須在一個子進程中運行它。請參閱perlipc以瞭解處理該問題的各種方法。
你可能想看看Expect控制交互式會話
反引號(「「)運行一個命令,返回其output.So可以存儲並進一步操縱它。如果你想忽略輸出,使用system()。另外,如果您想在後臺運行任何進程,請在進程的前綴中使用&。例如,你想使用腳本來啓動GIMP簡單地說
system("gimp &");
如果端口這段代碼恰好一個shell腳本是什麼? – mob 2010-02-12 19:55:04
'print pack(「c」,04)'?你是這麼試圖發送'^ D'到劇本嗎? – mob 2010-02-12 19:56:25