Я пишу код в Perl со встроенным скриптом в нем:Shell Программирование в 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 не показывает новые файлы. Любой знает, как это сделать. Я знаю, что могу использовать chdir(), но это не единственная проблема, так как у меня есть другие команды, которые я создал, которые являются просто командами оболочки, собранными вместе. Так кто-нибудь знает, как точно использовать cli в perl, так что мой компилятор будет поддерживать сценарий оболочки в одном процессе, а не создавать новый процесс для каждой системы ... Я действительно не знаю, что делать.
Редакции были использованы для улучшения вопроса. Пожалуйста, не возражайте, если вопрос будет ясен. правки: хорошая точка, сделанная толпой, что система - это единственный процесс, так что он умирает каждый раз. Но, что я пытаюсь сделать, это создать perl-скрипт, который следует алгоритму, который решает поток управления скриптом оболочки. Итак, как мне заставить все эти команды оболочки следовать одному и тому же процессу?
Мне непонятно, что вы пытаетесь сделать. Какой компилятор вы хотите использовать и какой компилятор использует ваш скрипт, если вы его не измените? – mob
Вы будете более точно о том, что вы пытаетесь сделать. Почему вы не можете использовать собственный 'chdir' perl? – kjprice
Я отредактировал его ... Можете ли вы, пожалуйста, прочитать еще раз ... спасибо :) – ban