gpt4 book ai didi

perl - Perl 的 system() 如何打印它正在运行的命令?

转载 作者:行者123 更新时间:2023-12-04 01:19:02 25 4
gpt4 key购买 nike

在 Perl 中,您可以使用 system() 或 ``(反引号)执行系统命令。您甚至可以将命令的输出捕获到变量中。但是,这会在后台隐藏程序执行,因此执行脚本的人无法看到它。

通常这很有用,但有时我想看看幕后发生了什么。你如何做到让执行的命令打印到终端,而那些程序的输出打印到终端?这将是 .bat相当于“@echo on”。

最佳答案

据我了解, system() 将打印命令的结果,但不会分配它。例如。

[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
反引号将捕获命令的输出而不打印它:
[daniel@tux /]$ perl -e '$ls = `ls`; print "Result: $ls\n"'
Result: bin
boot
dev
etc
home
lib
等等...
更新:如果要打印命令的名称是 system()也可以,我想 Rudd的做法不错。在这里重复进行合并:
sub execute {
my $cmd = shift;
print "$cmd\n";
system($cmd);
}

my $cmd = $ARGV[0];
execute($cmd);

关于perl - Perl 的 system() 如何打印它正在运行的命令?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17225/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com