Perl 中的 system() 函数
您可以使用 system() Perl 函数来执行任何 Unix 指令,其输出将转到 perl 脚本的输出中。默认情况下,它是屏幕,即 STDOUT,但您可以使用重定向运算符 > − 将其重定向到任何文件
#!/usr/bin/perl system( "ls -l") 1;
当执行以上代码时,它会列出当前目录中提供的所有文件和目录 −
drwxr-xr-x 3 root root 4096 Sep 14 06:46 9-14 drwxr-xr-x 4 root root 4096 Sep 13 07:54 android -rw-r--r-- 1 root root 574 Sep 17 15:16 index.htm drwxr-xr-x 3 544 401 4096 Jul 6 16:49 MIME-Lite-3.01 -rw-r--r-- 1 root root 71 Sep 17 15:16 test.pl drwx------ 2 root root 4096 Sep 17 15:11 vAtrJdy
当您的指令包含诸如 $PATH 或 $HOME 的 shell 环境变量时,请小心。尝试以下三种情况下 −
#!/usr/bin/perl $PATH = "I am Perl Variable"; system('echo $PATH'); # Treats $PATH as shell variable system("echo $PATH"); # Treats $PATH as Perl variable system("echo \$PATH"); # Escaping $ works. 1;
当执行上述代码时,它会根据 shell 变量 $PATH 中的设置产生以下结果。
/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin I am Perl Variable /usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin
广告