Как Perl-система system() может вывести команду, которую она выполняет?
Насколько я понимаю, system() выведет systems результат команды, но не perl5 присвоит его. Например.
[daniel@tux /]$ perl -e '$ls = system("ls"); print "Result: $ls\n"'
bin dev home lost+found misc net proc sbin srv System tools var
boot etc lib media mnt opt root selinux sys tmp usr
Result: 0
Обратные perl кавычки захватят вывод команды, а systems не распечатают его:
[daniel@tux /]$ perl -e '$ls = `ls`; print "Result: $ls\n"'
Result: bin
boot
dev
etc
home
lib
и т.д...
Обновление: Если system вы хотите напечатать имя systems команды, также system()
'd, я думаю, что perl подход Rudd хорош. Повторяется systems здесь для консолидации:
sub execute {
my $cmd = shift;
print "$cmd\n";
system($cmd);
}
my $cmd = $ARGV[0];
execute($cmd);
perl
system
2021-12-02T21:38:24+00:00
2022-10-07T16:58:12+00:00
Magooore
Вопросы с похожей тематикой, как у вопроса:
Как Perl-система system() может вывести команду, которую она выполняет?
Предупреждение о файлах Cookies
Мы используем файлы cookies для улучшения работы сайта. Оставаясь на нашем сайте, вы соглашаетесь с условиями использования файлов cookies. Чтобы ознакомиться с нашими Положениями о конфиденциальности и об использовании файлов cookie, нажмите здесь.