Perl调用外部命令(其他脚本、系统命令)的方法和区别
1. `command`;
open MORE "|more";
@list=<LIST>;
print MORE @list;
close(LIST);
close(MORE);
使用带管道的文件句柄来执行外部命令,使用方式与读写文件类似。可以从外部命令的输出读取数据,也可以将数据输出到外部命令作为输入。
使用该命令将开启一个子进程执行引号中的命令,父进程将等待子进程结束并继续执行下面的代码。
效果同system命令类似,区别是不会开启子进程,而是取代父进程,因此执行完引号中的命令后进程即结束。一般和fork配合使用。
而对于exec这个函数来说,如果执行了exec则结束后续所有进程,包括他自己的返回值<=>没有返回值;exec在系统没有你要执行的命令的情况下,不会返回false值,只是报错!!!和返回数值0 !!!
unless ($pid) {
exec ("date");
}
waitpid ($pid,0);
使用fork将会开启子进程与父进程同时执行之后的代码,其中父进程中fork会返回一个非零的数,而子进程中将返回零。上面的代码完成和system("date")相同的功能。比起system单纯地调用外部命令,fork可以完成更加复杂的进程操作。
6.@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文件里了。
Perl调用外部命令(其他脚本、系统命令)的方法和区别的更多相关文章
- Perl调用外部命令的方式和区别
主要的方式简述如下:1. system("command");使用该命令将开启一个子进程执行引号中的命令,父进程将等待子进程结束并继续执行下面的代码. 2. exec(" ...
- 如何在Python脚本中调用外部命令(就像在linux shell或Windows命令提示符下输入一样)
如何在Python脚本中调用外部命令(就像在linux shell或Windows命令提示符下输入一样) python标准库中的subprocess可以解决这个问题. from subprocess ...
- PHP调用外部命令
------------------------------------------------------------------ 一.PHP调用外部命令总结 ...
- PHP中调用外部命令的方法
在PHP中调用外部命令,可以用如下三种方法来实现: 方法一:用PHP提供的专门函数(四个): PHP提供4个专门的执行外部命令的函数:exec(), system(), passthru(), she ...
- scala调用外部命令
scala调用外部命令 1. 导入sys.process包 2. 调用方式:" 外部命令 " ! 双引号内+外部命令+感叹号 例: scala调用外部命令工作原 ...
- JDK1.5新特性,基础类库篇,调用外部命令类(ProcessBuilder)用法
一. 背景 ProcessBuilder类是用来创建操作系统进程的.与Runtime.exec相比,它提供了更加方便的方法以创建子进程. 每个ProcessBuilder实例管理着一个进程属性的集合. ...
- linux sh 脚本调用外部命令
参考:http://blog.csdn.net/lhb_blog/article/details/22083649 ------------------------------------------ ...
- Hadoop概念学习系列之Java调用Shell命令和脚本,致力于hadoop/spark集群(三十六)
前言 说明的是,本博文,是在以下的博文基础上,立足于它们,致力于我的大数据领域! http://kongcodecenter.iteye.com/blog/1231177 http://blog.cs ...
- Python 调用外部命令
python 可以使用 os 模块来调用外部的 Linux Shell 命令,常用的方法如下: os.system():结果输出在终端上,捕获不到os.popen() : 结果返回一个对象,即标准输出 ...
随机推荐
- Python学习之旅(二十)
Python基础知识(19):面向对象高级编程(Ⅱ) 定制类 形如“__xx__”的变量或函数在Python中是有特殊用途的 1.__str__ 让打印出来的结果更好看 __str__:面向用户:__ ...
- 转载关于Python Web后端开发面试心得
先介绍下我的情况:通信背景,工作一年多不到两年.之前一直在做C++的MFC软件界面开发工作.公司为某不景气的国企研究所.(喏,我的工作经验很水:1是方向不对:2是行业有偏差).然后目前是在寻找Pyth ...
- 深度学习基础(二)AlexNet_ImageNet Classification with Deep Convolutional Neural Networks
该论文是深度学习领域的经典之作,因为自从Alex Krizhevsky提出AlexNet并使用GPUs大幅提升训练的效率之后,深度学习在图像识别等领域掀起了研究使用的热潮.在论文中,作者训练了一个含有 ...
- js--单选按钮赋值
var sex='${userInfo.sex}'; if(sex=="女"){ $("input[name=sex][value='女']").attr(&q ...
- git 用远程覆盖本地
git 用远程覆盖本地 git fetch --all git reset --hard origin/master
- ES6 迭代器
Iterator Iterator 是 ES6 引入的一种新的遍历机制,迭代器有两个核心概念: 迭代器是一个统一的接口,它的作用是使各种数据结构可被便捷的访问,它是通过一个键为Symbol.itera ...
- jsr-303 参数校验—自定义校验注解
1.为什么要自定义? 通过上篇学习,了解到很多常用注解了,但是呢,总是有那么些需求.... 2.案例分析(手机号格式) 2.1.需要验证的实体 Bean public class LoginVo ...
- CentOS 7静默安装Oracle 11g R2数据库软件
之前安装Oracle 11g R2数据库软件都是建立在图形界面上的,不过现在大部分服务器上都没有安装图形界面.图形界面安装较为方便,安装选项清晰,步骤明确,但Oracle还支持另一种安装方式,就是通过 ...
- Codeforces 799D Field expansion(随机算法)
Field expansion [题目链接]Field expansion [题目类型]随机化算法 &题解: 参考自:http://www.cnblogs.com/Dragon-Light/p ...
- jQuery实现购物车物品数量的加减
基于jquery的一款代码,实现购物车数据的加减,在淘宝网.京东商城购物时时经常见到的一个功能,点击文本框两侧的“+”与“-”,就可以增加或减少文本框内的数字值,每次步长为1,当然这个是可以自己设置的 ...