首页 > 编程知识 正文

cmdJS(nodejs执行shell脚本)

时间:2023-05-04 13:10:41 阅读:74748 作者:4763

所有编程语言都有执行系统命令的接口。 nodejs也不例外。 例如,删除shell命令将单个HTML文件转换为PDF文件。 如果是PHP的话很简单。

` prince-vbuilds/pdf/book.html-obuilds/pdf/book.pdf `

在PHP中,系统命令可以放在反单引号(`)中执行。 如果使用nodejs,则必须调用引用

varexec=require('child_process ' ).exec;

varcmd=' prince-vbuilds/pdf/book.html-obuilds/pdf/book.pdf ';

exec(cmd,function(error,stdout,stderr ) {

//获取指令执行的输出

);

我在这里使用的是

varspawn=require (' child _ process ' ).spawn;

varchild=spawn('prince ',[

'-v ',' builds/pdf/book.html ',

'-o ',' builds/pdf/book.pdf '

];

child.stdout.on('data ',function ) ) chunk )。

//output will be here in chunks

);

//orifyouwanttosendoutputelsewhere

child.stdout.pipe(dest;

如果希望nodejs运行文件而不是简单的命令,则必须使用spawn。 但是,第四个回调函数参数会增加,就像exec中的回调函数参数一样。

var execfile=require (' child _ process ' ).execfile;

execfile (文件、args、options、function ) error、stdout、stderr ) {

//command output is in stdout

);

所有上述方法都在nodejs上异步执行,但可能需要同时执行一些任务。 下面的代码示例使用同步方法调用系统命令来执行任务。

' use strict ';

常数

spawn=require(child_process ) ).spawnSync,

ls=spawn('ls ',[ '-lh ','/usr' ] );

console.log (stderr : $ (ls.stderr.tostring ) );

控制台. log (stdout : $ (ls.stdout.tostring ) ) };

constexecsync=require (' child _ process ' ).execsync;

varcmd=exec sync (prince-vbuilds/pdf/book.html-obuilds/pdf/book.pdf ' );

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。