perl system函数返回值问题
在Perl中,可以用system、exec、readpipe这三个命令来调用其他脚本、系统命令等。这三个命令的主要区别就是返回值。
1) 对于system这个函数来说,它会返回执行后的状态,比如说
@args = (“command”, “arg1″, “arg2″);
system(@args) == 0
or die “system @args failed: $?”
当然,你也可以用类似于下面的语句来检查出错的原因:
if ($? == -1) {
print “failed to execute: $!\n”;
}
elsif ($? & 127) {
printf “child died with signal %d, %s coredump\n”,
($? & 127), ($? & 128) ? ‘with’ : ‘without’;
}
else {
printf “child exited with value %d\n”, $? >> 8;
}
2) 而对于exec这个函数来说,仅仅是执行一个系统的命令,一般情况下并没有返回值。exec只有在系统没有你要执行的命令的情况下,才会返回false值。
exec (‘foo’) or print STDERR “couldn’t exec foo: $!”;
{ exec (‘foo’) }; print STDERR “couldn’t exec foo: $!”;
3) 当我们需要保存系统命令运行的结果,以便分析并作进一步的处理时,就要用到readpipe这个函数了。例如:
@result = readpipe( “ls -l /tmp” );
print “@result”;
会产生如下的结果:
drwxr-xr-x 2 root root 4096 Mar 19 11:55 testdir
当然,你也可以把生成的结果放到一个文件里,以便写工作日志呀、发布报告呀。
$inject_command = “./ConfigChecker.bat F:/nic/3502/ARRAY-4AD2E0573/etc “.$device_name;
chdir “F:/TestTools/bin/”;
@temp_result = readpipe($inject_command);
open(result_file,”>result.txt”);
print result_file @temp_result;
close(result_file);
这样,你就把系统运行的结果扔到了系统命令所在目录下的result.txt文件里了。
这三个命令,有各自的特点,需要在使用时灵活选用,更详细的资料就得上PerlDoc上找了。
注解:
1;$result=system( '外部命令 ');
这个result只是返回命令是否成功,而不是外部命令的打印结果
2;
perl system函数返回值问题相关推荐
- system函数返回值
system(执行shell 命令) 相关函数 fork,execve,waitpid,popen 表头文件 #include<stdlib.h> 定义函数 int system(c ...
- system函数返回值探究
http://blog.chinaunix.net/uid-24774106-id-3048281.html?page=3 遇到system调用脚本,结果返回了256的情况,那么如何判断脚本是否正常成 ...
- system函数返回值,Linux
理论 我们先看下man手册是怎么说的man system RETURN VALUEThe value returned is -1 on error (e.g., fork(2) failed), a ...
- Linux system函数返回值
例: status=system("./test.sh"); 1.先统一两个说法: (1)system返回值:指调用system函数后的返回值,比如上例中status为system ...
- 2020-09-22C++学习笔记之引用1(1.引用(普通引用)2.引用做函数参数 3.引用的意义 4.引用本质5.引用结论 6.函数返回值是引用(引用当左值)7测试代码)
2020-09-22C++学习笔记之引用1(1.引用(普通引用)2.引用做函数参数 3.引用的意义 4.引用本质5.引用结论 6.函数返回值是引用(引用当左值)7测试代码) 1.引用(普通引用) 变量 ...
- java 函数参数 返回值_java中如何用函数返回值作为post提交的参数?
1.我想实现的功能是在java程序中导入HttpURLConnection类,然后将函数的值作为post方法要提交的参数,最后显示在显示台上. 2.要用到的函数是自己写的可以显示实时计算机cpu.内存 ...
- 【C 语言】字符串模型 ( 字符串翻转模型 | 抽象成业务函数 | 形参返回值 | 函数返回值 | 函数形参处理 | 形参指针判空 )
文章目录 一.字符串翻转模型 业务函数 二.完整代码示例 一.字符串翻转模型 业务函数 将上一篇博客 [C 语言]字符串模型 ( 字符串翻转模型 ) 的代码 , 主要业务逻辑 , 抽象成函数 ; 字符 ...
- 【C 语言】字符串模型 ( 两头堵模型 | 将 两头堵模型 抽象成业务模块函数 | 形参返回值 | 函数返回值 | 形参指针判空 | 形参返回值操作 )
文章目录 一.将 两头堵模型 抽象成业务模块函数 二.完整代码示例 一.将 两头堵模型 抽象成业务模块函数 将 两头堵模型 抽象成业务模块函数 相关要点 : 形参返回值 : 函数的返回值 , 一般使用 ...
- java 11:数组作为函数参数,数组做为函数返回值
1 数组作为参数 我们可以将数组作为参数,传入到函数中,其实就像我们main函数中 public void main(String [] args){};就是用数组作为函数参数: 又如, [java] ...
最新文章
- u-boot之怎么实现分区
- JQuery图表插件Highcharts示例教程
- 深度学习(六)——CNN进化史
- 2016 校园招聘求职经历(二)
- 最近两天遇到的问题 原因 和处理方式 小结
- GaussDB(DWS)应用实战:对被视图引用的表进行DDL操作
- Shell编程基础(1)
- 指定 年-月-日 将其封装tree树状结构
- Unity获取安卓手机运营商,电量,wifi信号强度,本地Toast,获取已安装apk,调用第三方应用,强制自动重启本应用...
- 怎样python爬虫更换ip地址爬取网站
- Linux下服务的管理
- matlab 类型强制转换,关于数据类型强制转换的分析和应用
- Mac 使用 扫描 仪
- logback MDC线上问题快速定位神器
- 学习python第八节课:可变与不可变对象
- 单射、满射和双射(一 一映射)
- [渝粤教育] 西南科技大学 电子测量与仪表 在线考试复习资料(1)
- 抽象手绘七夕情人节快闪PPT模板
- 小米air2se耳机只有一边有声音怎么办_盘点2020半入耳蓝牙耳机排名
- 建筑计算机辅助设计证书,学术讲座:计算机辅助设计绘图员(建筑类)职业技能鉴定...