簡體   English   中英

如何從Perl運行和結束script()linux命令?

[英]How can I run and end the script() linux command from Perl?

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

調用腳本時該腳本掛起。 不確定如何獲取perl腳本以保持運行。

請注意,反引號( '' )運行命令並返回其輸出。 如果您要忽略輸出,請按以下方式使用system

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

如果您想解雇某個程序(也就是說,在后台啟動該程序而不必擔心程序何時完成),則可以使用

system("script >scripter &");

如果您希望所有子進程都進行交互,則必須在一個子進程中全部運行。 有關各種處理方法,請參見perlipc

您可能需要查看Expect來控制交互式會話

backticks('')運行命令並返回其輸出,因此您可以進一步存儲和操作它。 如果要忽略輸出,請使用system()。 另外,如果要在后台運行任何進程,請使用&在該進程的前綴中。 例如,您希望使用腳本啟動Gimp,只需說

system("gimp &");

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM