fir*_*gle 71
1.使用系统系统($ command,@ arguments);
例如:
system("sh", "script.sh", "--help" );
system("sh script.sh --help");系统将使用@arguments执行$命令并在完成后返回到您的脚本.你可以检查$!对于外部应用程序传递给操作系统的某些错误.阅读系统文档,了解各种调用略有不同的细微差别.
2.使用exec
这与使用系统非常相似,但它会在执行时终止您的脚本.再次,阅读exec的文档以获取更多信息.
3.使用反引号或qx //
my $output = `script.sh --option`;
my $output = qx/script.sh --option/;反引号运算符和等效的qx //执行运算符内的命令和选项,并在完成后将命令输出返回到STDOUT.
还有一些方法可以通过创造性地使用open来运行外部应用程序,但这是高级用法; 阅读文档了解更多信息.
sjy*_*sjy 16
从Perl HowTo开始,从Perl执行外部命令的最常用方法是:
my $files = `ls -la` - 捕获命令的输出 $filessystem "touch ~/foo" - 如果您不想捕获命令的输出exec "vim ~/foo" - 如果您不想在执行命令后返回脚本open(my $file, '|-', "grep foo"); print $file "foo\nbar" - 如果要将输入管道输入命令小智 12
`ls -l`; system("ls -l");exec("ls -l");随着您使用Perl的经验越来越丰富,您会发现需要运行shell命令的次数越来越少.例如,获取文件列表的一种方法是使用Perl的内置glob函数.如果您希望按排序顺序列表,则可以将其与内置排序功能结合使用.如果需要有关每个文件的详细信息,可以使用stat函数.这是一个例子:
#!/usr/bin/perl
use strict;
use warnings;
foreach my $file ( sort glob('/home/grant/*') ) {
my($dev,$ino,$mode,$nlink,$uid,$gid,$rdev,$size,$atime,$mtime,$ctime,$blksize,$blocks)
= stat($file);
printf("%-40s %8u bytes\n", $file, $size);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
194759 次 |
| 最近记录: |