シェルスクリプトが埋め込まれたコードをperlで書いています:
#!/usr/bin/perl
use strict;
use warnings;
our sub main {
my $n;
my $n2=0;
$n=chdir("/home/directory/");
if($n){
print "change directory successful $n \n";
$n2 = system("cd", "section");
system("ls");
print "$n2 \n";
}
else {
print "no success $n \n";
}
print "$n\n";
}
main();
しかし、うまくいきません。私がlsをするとき。ls は新しいファイルを表示しません。それを行う別の方法は誰でも知っています。chdir() を使用できることはわかっていますが、それだけが問題ではありません。作成した他のコマンドは、単純にシェル コマンドを組み合わせたものです。それで、私のコンパイラがシステムごとに新しいプロセスを作成するのではなく、シェルスクリプトを同じプロセスに接続したままにするために、perlでcliを正確に使用する方法を知っている人はいますか...何をすべきか本当にわかりません。
編集は、質問を改善するために使用されています。質問が明確な場合は、編集を気にしないでください。編集:システムは単一のプロセスであるため、毎回死ぬという暴徒による良い点。しかし、私がやろうとしているのは、シェル スクリプトの制御の流れを決定するアルゴリズムに従う perl スクリプトを作成することです。では、これらすべてのシェル コマンドが同じプロセスに従うようにするにはどうすればよいでしょうか。