`
qq805772847
  • 浏览: 2280 次
  • 性别: Icon_minigender_1
  • 来自: 湖南
文章分类
社区版块
存档分类
最新评论

perl调用外部命令或者脚本,如何取得外部命令或者脚本的返回值(退出值)

    博客分类:
  • Perl
阅读更多
转自:http://blog.csdn.net/code805772847/article/details/7100600

使用perl调用外名命令有很多方法,这里就不详细讲解。

如有shell脚本a.sh

#!/bin/bash

echo "script out put"

exit 2

有perl脚本test.pl调用a.sh

#!/bin/perl -w

$output = qx(/usr/local/a.sh);

$exitcode = $?;

print "output = " . $output;

print "exitcode = " . $exitcode;

执行此perl脚本./test.pl

你会发现输出的内容为

output = script out put

exitcode = 256

明显就不是你所期望的结果。输出应该是

output = script out put

exitcode = 2

这才是我们期待的。

原因是什么我不多说,看如下解决解决方案。

#!/bin/perl -w

$output = qx(/usr/local/a.sh);

$exitcode = $? >>8;

print "output = " . $output;

print "exitcode = " . $exitcode;

再次运行脚本你会发现OK了。
分享到:
评论

相关推荐

    Perl函数小结

    Perl是一种强大的脚本编程语言,尤其在文本处理和系统管理任务方面表现突出。在Perl中,处理进程是非常常见的操作,本文将重点介绍Perl中的几个关键函数,包括进程启动、进程终止以及进程控制。 1. 进程启动函数: ...

    Perl5语言命令详解.pdf

    10. **系统交互**:Perl5可以轻松调用外部命令,如`system`函数,或者通过`backticks`(`` ` ``)或`qx//`捕获命令的输出。 以上只是Perl5语言的部分要点,完整的学习需要深入理解和实践。"Perl5语言命令详解.pdf...

    使 .NET 支持Perl脚本语言3932815.zip

    C# 开发者可以通过这个解决方案与 Perl 脚本进行交互,比如执行 Perl 脚本、传递参数、接收返回值等。这通常涉及到 COM 互操作、托管代码与非托管代码的交互,或者使用特定的 .NET 绑定库来实现。 为了在 C# 中使用...

    在VB中如何调用perl代码.pdf

    在VB中调用Perl代码主要依赖于ScriptControl控件,该控件允许VB应用程序加载并执行各种脚本语言,包括Perl。因此,确保以下准备工作的完成至关重要: 1. **注册Perl为扩展Script**: - 确保安装了Perl环境。 - ...

    中文奥宝gensis脚本培训-Perl

    - 介绍了一些Perl中的常用函数,如EVAL, USE和REQUIRE(Perl模块相关), SYSTEM(执行外部命令), SLEEP(暂停执行), EXIT(结束执行)。 6. 引用和数据结构: - 如何使用数组的数组、散列的数组、数组的散列...

    C.Inline.Perl

    3. **调用Perl函数**:使用`call_argv()`或`call_method()`函数调用Perl函数或对象的方法,传递参数并接收返回值。 4. **数据交换**:C和Perl之间的数据交换通常通过SV(Scalar Value)结构体进行,它可以表示各种...

    java源码:在Java中运行Perl脚本 JERL.zip

    1. **Perl Interpreter Integration**:JERL允许在Java程序中实例化Perl解释器,这样就可以执行Perl脚本或者直接运行Perl代码片段。这使得Java应用能够利用Perl的强大功能,如正则表达式处理、文本解析等。 2. **...

    基于Java的在Java中运行Perl脚本 JERL.zip

    同时,JERL还支持传递变量和获取返回值,这对于交互式调用Perl脚本非常有用。例如: ```java interp.setVar("input", "Some text"); String output = interp.runScriptlet("my $output = uc($input); $output;"); ...

    linux perl 脚本介绍.pdf

    例如,通过`system`或`exec`函数,可以直接调用shell命令,如`system("ls -l")`,或者执行系统命令并捕获其输出,如`my $output = `ls -l``。 Perl脚本的另一个关键方面是模块的使用,它们扩展了Perl的功能。例如,...

    perl24hours11

    1. **system()函数**:这是Perl中用于运行外部命令的函数。通过system(),Perl程序可以暂停执行,调用操作系统命令,然后继续执行。函数的基本语法是`system(command)`,其中`command`是你想要运行的外部命令。在...

    perl.pdf

    - **返回值**:函数可以返回一个值或多个值。 - **可选参数**:可以通过默认值实现可选参数。 #### 正则表达式 Perl 的正则表达式功能强大,支持各种符号和语法。常见的正则表达式操作包括搜索和替换。 #### 内置...

    nagios外部监控脚本编写借鉴.pdf

    《NAGIOS外部监控脚本编写指南》 NAGIOS是一款强大的网络监控系统,它能够实时监测网络服务、主机状态以及各种系统资源,确保IT基础设施的稳定运行。本文主要介绍如何利用NAGIOS开发外部监控脚本,实现自定义的服务...

    perl6手册perl6

    - **4.5.1 创建和使用捕获**:介绍Perl 6中如何使用捕获来存储和访问函数调用中的参数值。 - **4.5.2 签名中的捕获**:解释如何在子程序签名中使用捕获。 #### 4.6 解包 介绍Perl 6中的解包操作,这是一种从容器中...

    Perl语言参考手册中文htmlPerl语言参考手册中文html

    10. **系统交互**:Perl可以直接调用系统命令,如system函数,或者通过backticks或qx运算符来执行shell命令。 这个“Perl语言参考手册中文html”将详细介绍以上所有内容,对于初学者和经验丰富的Perl开发者来说,都...

    Perl入门书籍——Perl 24小时

    - **列表与数组**:数组是Perl中存储有序数据的主要方式,列表则是数组的一种特殊形式,常用于函数调用和返回值。 - **文件操作**:Perl提供了丰富的文件读写和处理功能,使得文本处理和数据操作变得简单高效。 -...

    nagios外部监控脚本编写.pdf

    当Nagios需要检查某个服务或主机的状态时,它会调用这些外部程序。这些程序可以是编译后的二进制文件,也可以是Perl、PHP、Shell等脚本。无论程序的内部实现如何,其主要任务是完成状态检查并返回结果给Nagios。 ...

    perl入门(编程24学时教程)

    - **启动程序**:执行Perl脚本时需要通过`perl`命令来调用解释器运行脚本。 **Perl的名称来源** - 最初的全称“Practical Extraction and Report Language”(实用的抽取与报告语言),但现在更倾向于非正式地称为...

Global site tag (gtag.js) - Google Analytics