我使用perl Tk使用以下代码创建任务管理器。
my $mw=MainWindow->new;
$mw->title("Task Manager");
$numproc = `ps|wc -l`;
$i=2;
@a=1;
while($i <= $numproc){
my $p=`sh printproc.sh $i`;
system($p);
$mw->Checkbutton(-text=>$p)->pack;
$i=$i+@a;
}
MainLoop;
printproc.sh具有以下内容
ps|head -$1|tail -1
我得到一个窗口,每个进程都列为checkButton,但每个进程都会出现以下错误。
不能执行&#34; 2645&#34;:在first.pl第11行没有这样的文件或目录。
如何避免此错误?
答案 0 :(得分:3)
my $p=`sh printproc.sh $i`;
system($p);
这将获取运行printproc.sh
的输出并将其存储在$p
中,然后尝试执行该操作,就好像它是一个命令一样。删除system($p);
行。