【问题标题】:get output of perl script from bash script and exit从 bash 脚本获取 perl 脚本的输出并退出
【发布时间】:2011-04-16 03:03:30
【问题描述】:

如果值 = 0,我如何从 bash 脚本执行 perl 脚本获取输出并退出? 同样在 perl 脚本中,我如何返回值,是直接返回还是打印出来?

【问题讨论】:

    标签: perl bash


    【解决方案1】:
    #!/bin/bash perl 脚本参数 && 退出

    如果要继续运行,返回值在$?

    请注意,perl 脚本返回的值和脚本的输出是有区别的。要获取脚本的输出,请使用 $() 运算符:

    #!/bin/bash 输出=$(perl 脚本参数) echo perl 脚本返回 $? echo 脚本的输出是 $output

    【讨论】:

    • 实际上如果返回的值不是 0 我希望它继续运行
    • 我得到:在 bash 脚本中添加 && exit 时找不到命令
    • @user391986 'cmd && exit' 如果 cmd 返回零将退出,如果 cmd 返回任何其他值将继续运行。不知道为什么找不到命令。
    【解决方案2】:

    要获取返回码,请使用exit 函数。示例:

    Perl 脚本:

    if ($success) {
        $return_value = 0;
    } else {
        $return_value = 1;
    }
    exit($return_value);
    

    Bash 脚本:

    perl scriptname args > outfile && exit
    

    假设您想在 Perl 脚本的返回值为 0 时退出,并且您希望将 Perl 脚本的输出保存在outfile 中。如果返回值不为零,则存储在$?,如果您愿意,可以将该值保存到变量中。

    【讨论】:

    • 从 perl 脚本中打印“0”还是返回“0”以及如何获取 $return_value 中的 perl 值
    • @user 是 Perl 脚本。您可以使用exit 函数从脚本返回一个值。您可以将任何您喜欢的数字绑定到$return_value,就像您通常在 Perl 中所做的那样。为了澄清,我在 perl 示例中添加了一些内容。
    【解决方案3】:

    你的 perl 脚本:foo.pl

    #!/usr/bin/perl
    # do something and then
    exit 1;
    

    在你的 bash 脚本 foo.sh 中:

    #!/bin/bash
    # do something and then call perl script
    perl foo.pl
    
    # check return value using $?
    echo "perl script returned $?"
    

    【讨论】:

    • 1 并不意味着成功的返回值,顺便说一句,exit 1 需要一个分号。
    • 感谢添加缺少; 和正确1 绝对不意味着成功的价值,这只是一个例子。
    猜你喜欢
    • 1970-01-01
    • 2017-11-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多