Perl调用shell命令的几大方法小结

一、system

Perl调用shell命令的几大方法小结

perl也可以用system调用shell的命令,它和awk的system一样,返回值也是它调用的命令的退出状态.

复制代码 代码如下:

[root@AX3sp2 ~]# cat

#! /usr/bin/perl -w

$file = "";

system("ls -l ");

$result = system "ls -l $file";

print "$result n";#输出命令的退出状态

system "date";

[root@AX3sp2 ~]# perl

-rwxr-xr-x 1 root root 126 12-16 15:12

-rwxr-xr-x 1 root root 126 12-16 15:12

2010年 12月 16日 星期四 15:58:34 CST

二、反引号

perl的system函数和awk的一样不能够返回命令的`输出.

要得到命令的输出,就得使用和shell本身一样的命令: ` `

复制代码 代码如下:

[root@AX3sp2 ~]# cat

#! /usr/bin/perl

print `date`;

print "this is test n";

[root@AX3sp2 ~]# perl

2010年 12月 16日 星期四 15:51:59 CST

this is test

三、exec

最后,perl还可以使用exec来调用shell的命令. exec和system差不多,不同之处在于,调用exec之后,perl马上就退出,而不会去继续执行剩下的代码

复制代码 代码如下:

[root@AX3sp2 ~]# cat

#! /usr/bin/perl

exec ("echo this is test");

print "good bye !n";#这句话不会被输出

[root@AX3sp2 ~]# perl

this is test