• perl调用shell


    1 system
    perl也可以用system调用shell的命令,它和awk的system一样,返回值也是它调用的命令的退出状态.如果向system传递一个字符串作参数,则perl会调用shell来执行这个命令,在这个字符串内也就不可以有perl 的变量了;如果传递多个字符串作参数,则perl会自己执行这个命令,且可以传递perl自己的变量给它,因为perl会对这些变量扩展成它们的值
    $ perl
    system("ls -l grep.test");
    $long = "-l";
    $file = "grep.test";
    system "ls", $long, $file;
    system("ls $long $file");
    -rw-r--r-- 1 Administrator None 25 Feb 27 21:37 grep.test
    -rw-r--r-- 1 Administrator None 25 Feb 27 21:37 grep.test
    -rw-r--r-- 1 Administrator None 25 Feb 27 21:37 grep.test

    注意上面只输出了三次grep.test的信息,且最后一行是空行,可见最后一个system调用的ls有错误,因为只传递一个字符串给system,perl是不会把这个字符串里出现的变量进行扩展的.
    2 反引号
    perl的system函数和awk的一样不能够返回命令的输出.要得到命令的输出,就得使用和shell本身一样的命令:` ` (一对反引号,键盘上Esc键下面的那个)
    $ perl
    $now = `date`;
    print $now;
    Sun Mar 8 23:08:24 2009

    3 exec
    最后,perl还可以使用exec来调用shell的命令. exec和system差不多,不同之处在于,调用exec之后,perl马上就退出,而不会去继续执行剩下的代码
    $ perl
    exec("date");
    print "this line will never be seen.";
    Sun Mar 8 23:16:54 2009
  • 相关阅读:
    第3次实践作业
    第2次实践作业
    第1次实践作业
    2019 SDN大作业
    第05组 Beta版本演示
    个人作业——软件工程实践总结&个人技术博客
    个人作业——软件评测
    Springboot项目部署到云服务器(Ubuntu 18.04)
    结对第二次作业——某次疫情统计可视化的实现
    结对第一次—疫情统计可视化(原型设计)
  • 原文地址:https://www.cnblogs.com/djcsch2001/p/2025958.html
Copyright © 2020-2023  润新知