如何使节点child_process连续执行

2024-03-21

How to exec连续地?例如ls after cd?

I tried

exec = require('child_process').exec;
exec('cd ~/', 
  function(){
    exec('ls'),
    function(err, stdout, stderr){
      console.log(stdout); // this logs current dir but not ~/'s
    }
  }
)

exec('cd ~/').exec('ls', function(err, stdout, stderr){
  console.log(stdout);
})//this also fails because first exec returns a ChildProcess Object but not itself.

这是不可能的,因为 exec 和 spawn 创建了一个新进程。但有一种方法可以模拟这一点。您可以使用 exec 启动一个进程并同时执行多个命令: 在命令行中,如果你想在同一行执行 3 个命令,你可以这样写:

cmd1 & cmd2 & cmd3

因此,所有 3 个命令都在同一进程中运行,并且可以访问先前执行的命令修改的上下文。 让我们以您的示例为例,您想要执行 cd ../ 然后执行 dir 并查看上一个目录列表。 在cmd中你应该写:

cd../ & dir

在 Node js 中,您可以使用 exec 启动一个进程,并告诉它启动另一个节点实例来评估内联脚本:

var exec = require('child_process').exec;
var script = "var exec = require('child_process').exec;exec('dir',function(e,d,er){console.log(d);});";
script = '"'+script+'"';//enclose the inline script with "" because it contains spaces
var cmd2 = 'node -e '+script;
var cd = exec('cd ../ &'+cmd2,function(err,stdout,strerr)
{
    console.log(stdout);//this would work
})

如果您只想更改当前目录,您应该查看有关它的文档http://nodejs.org/api/child_process.html#child_process_child_process_exec_command_options_callback http://nodejs.org/api/child_process.html#child_process_child_process_exec_command_options_callback

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使节点child_process连续执行 的相关文章

  • 按需require()

    假设我创建了一个库 libname其中包含一个主文件 main js以及偶尔与主对象一起使用的多个可选库文件 a js and b js 我创造index js文件包含以下内容 exports MainClass require main
  • NodeMailer,发送特定数量的电子邮件

    我需要帮助使用 nodemailer 发送特定数量的电子邮件 假设我想向特定的人发送 20 封电子邮件 这是我的代码 const transporter nodemailer createTransport smtpTransport ho
  • 对周围的所有 Node JS 框架/库等感到困惑 [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我感觉有点困惑 有很多 Node js 相关 东西 的框架 有人能给我一个概述吗 以下库 框架 其他内容如何相互关联 交互 其中包括什么或
  • 在节点上生成 AES 密钥

    我正在处理一个使用自定义协议来加密通信的遗留应用程序 随机 AES 密钥在旧版 Java 应用程序中生成 如下所示 keygen KeyGenerator getInstance AES keygen init 128 keygen gen
  • 从字符串渲染 React 组件

    我在字符串中有一些 React 代码 例如 const component function App return div test div 我希望能够从浏览器内渲染该组件 例如 import React Component from re
  • Jade 模板引擎中的 IE 条件语句

    如何将以下 IE 条件语句转换为 JADE 语言 我已尝试以下操作 但它不起作用 if IE 8 html lang en class ie8 if IE 9 html lang en class ie9 if IE html lang e
  • 在 NodeJS 中处理长时间运行的进程?

    我看过一些较旧的帖子涉及这个主题 但我想知道当前的现代方法是什么 用例是 1 假设您想要在视频文件上执行长时间运行的任务 例如 60 秒长 例如jspm install这最多可能需要 60 秒 2 不能对任务进行细分 其他要求包括 需要知道
  • WebSockets 监听 UNIX 域套接字?

    是否可以在 nginx 服务器后面设置一个 WebSockets 服务器来处理 UNIX 域套接字上的连接 我目前在同一台计算机上有多个 WebSocket 服务器实例 并且存在端口共享问题 所有实例都必须分配一个唯一的端口 我想避免这种情
  • 使用express-fileupload上传文件

    我正在尝试使用express fileupload上传文件 但没有成功让它工作 我可以让文件 在本例中为图像 上传 因为我可以让控制台显示使用正确文件夹上传的图像 启动 js router get upload function req r
  • 如何从脚本中退出 NodeJS 脚本?

    现在我有一个为我设置数据库的nodeJS 脚本 每当我在命令行中运行它时 我都需要按 ctrl C 退出脚本 我假设nodeJS中有某种命令可以让它在完成后自行退出 但我似乎无法通过在interwebz上进行搜索来找到任何此类命令 有人知道
  • WebSocket 连接失败:WebSocket 握手期间出错:意外的响应代码:400

    我正在尝试将 Socket io 与 Angular 集成 但在从客户端到服务器建立连接时遇到困难 我查看了其他相关问题 但我的问题发生在本地 所以中间没有网络服务器 这就是我的服务器代码的样子 const app express cons
  • 修改“NodeJS”上的 XML 标签

    有谁知道如何使用 NodeJS 修改 XML 文件的标签值 这是我的 XML 文件
  • Socket.IO 消息不更新 Angular 变量

    我有一个 socket io 客户端 服务器设置 并在客户端上运行 AngularJS Server js var io require socket io server io on connection function socket s
  • Openshift 上的自定义 Node.js 版本

    我在运行自定义节点版本时遇到问题node0 10您可以在开放班次中找到墨盒here https github com DavidReinberger openshift meteor leaderboard customNode 我可以很好
  • 如何在nodejs中获取字符串长度(以字节为单位)?

    如何在nodejs中获取字符串长度 以字节为单位 如果我有一个字符串 像这样 那么 str length 将返回 4 但是如何获得该字符串 有多少字节组成 这是一个例子 str console log str str length char
  • 如何在 Express 中模拟中间件以跳过单元测试的身份验证?

    我在 Express 中有以下内容 index js var service require subscription service var auth require auth auth service var router expres
  • 从 Puppeteer 中的 page.evaluate 获取元素? [复制]

    这个问题在这里已经有答案了 我正在与Node js and 傀儡师第一次 找不到输出值的方法page evaluate到外部范围 我的算法 Login Open URL Get ul 循环每个li然后点击它 等待innetHTML要设置并添
  • 快递+护照+会话。为每个页面加载执行查询

    我正在使用 Express 4 2 0 和 Passport 0 2 0 我使用的express session中间件是1 2 1 我对节点身份验证比较陌生 所以请耐心等待 我注意到 对于每个页面加载 护照正在执行数据库请求 Executi
  • npm 安装旧版本的(typescript 编译器)包

    在Windows环境下 我有 节点 v4 6 0 npm v3 10 8 我的本地打字稿版本是 npm run tsc v 3 10 8 但是 我有时想使用我的全局 tsc 因为出于某种原因 gulp 使用全局 tsc 但是当我这样做时 n
  • 如何在前端和后端之间共享javascript代码(ES6)

    这是 ES6 特定的副本这个所以线程 https stackoverflow com questions 3225251 how can i share code between node js and the browser 其中详细介绍

随机推荐

  • WPF 灵活的 TabControl 标头

    我想要一个TabControl与多个TabItems These TabItems每个都有一个标题文本 这些文本的长度可能相差很大 例如 5 个字符长和 15 个字符长 我想要TabControl仅将标题对齐一行 所有选项卡标题应使用相同的
  • 如何通过Bootstrap垂直分隔线画线?

    我正在使用 Twitter Bootstrap 我需要绘制菜单线 https www dropbox com s hl8moeabxxecu8j dropdown png https www dropbox com s hl8moeabxx
  • 将 Create-React-App 与 Material UI 结合使用

    我是 Material UI 和 ReactJS 的新手 我一直在玩创建 React 应用程序 CRA https github com facebookincubator create react app and 反应带 https gi
  • 包括控制器中的模块

    我在 ruby on Rails 应用程序的 lib 目录中完成了一个模块 就像是 module Select def self included base base extend ClassMethods end module Class
  • ES6 中的延迟模块加载是如何工作的

    我怎么能够延迟加载ES6 模块 经过lazy 我的意思是我不想实际加载模块不需要 例如 我可以使用 RequireJS 执行以下操作 function someEventHandler var SomeModule require some
  • 使用Python的Azure定时器触发函数

    我正在使用 Python 3 x 编写 Azure 计时器触发器 我已经运行了一个这样的函数 我想我知道该怎么做 从 JS 创建一个 然后删除 index js 并创建一个 run py 但这一次 当我运行 python 函数时 总是收到错
  • 删除 R 中除撇号和字内破折号之外的标点符号

    我知道如何单独删除标点符号并保留撇号 gsub alnum db text 或者如何使用 tm 包保留字内破折号 removePunctuation db text preserve intra word dashes TRUE 但我找不到
  • 为什么 IPython.display.Image 没有显示在输出中?

    我有一个如下所示的单元格 from IPython display import Image i Image filename test png i print test 输出只是 test 我在输出中看不到图像 我检查了该文件是否存在 无
  • 在 Qt 拖放中使用 QMimeData 传递数据

    我试图了解在 Qt 中使用拖放时数据如何传递 根据我从我一直在研究的示例中了解到的内容 您首先通过重写继承的方法将小部件定义为可拖动的QWidget 在重写方法的实现中 我一直在查看的示例实例化了一个指向QMimeData对象 并通过调用在
  • 将变量传递给指令模板而不创建新范围

    有没有一种方法可以使用属性将变量传递给指令而不创建新的作用域 HTML div div JS directive button function return scope button template div div div button
  • 来自 Firefox 附加组件的控制台日志记录

    Mozilla 文档 https addons mozilla org en US developers docs sdk latest dev guide console html https addons mozilla org en
  • 想要调整 Windows 中运行的其他应用程序的大小

    我正在寻找最干净的方法来获取所有打开的窗口并可以移动 调整它们的大小 我希望能够获取他们当前的位置并将它们移动到我想要的位置 我想要访问所有窗口 而不仅仅是顶层窗口 Thanks 本教程显示了获取正在运行的进程列表的一种方法 用于进程检索的
  • “FormData”仅在 IE 中未定义

    我有一个问题 我需要将数据发布为内容类型application x www form urlencoded var inputData cId 444 pageNo 1 latitude 49 153236 longitude 12 040
  • ActiveRecord find_all_by_X 是否保留顺序?如果不是,应该用什么来代替?

    假设我有一个非空数组ids of Thing对象 ID 我想使用查找相应的对象things Thing find all by id ids 我的印象是things不一定有类似于的顺序ids 我的印象正确吗 如果是这样 我可以用什么来代替f
  • Cassandra 物化视图影响

    想知道 mv 对基表的影响 它会减慢基表的速度吗 它什么时候开始写入 mv 就像同时写入基表和 mv 一样 如果我有 local quorum 的 CL 且 RF 3 客户端是否必须等到写入 mv 才能获得 ack 基表和 mv 涉及哪种类
  • tailwindcss 排版“SassC::SyntaxError:错误:类型的未终止属性选择器”

    我升级了tailwindcss railsgem 并在编译生产资源时出现此错误 bundle exec rails assets precompile rails aborted SassC SyntaxError Error unterm
  • rbenv 不断生成 vagrant shim

    我正在使用最新的 vagrant 和 rbenv 和各种红宝石 我正在使用最新的 vagrant 它不再使用 gem 当我执行 vagrant 命令时 我看到以下错误 rbenv vagrant command not found 我已经从
  • 使用命名空间两次

    在 C 中可以两次包含相同的名称空间吗 编译器不会给出任何错误 但无论如何它仍然会产生影响 Thanks EDIT I meant using namespace std STUFF using namespace std 这取决于您所说的
  • 在 Symfony 1.4.8 中显示图像时出错

    注意 很难决定这是否属于此处或 ServerFault 但这似乎是一个编程问题 因此如果它不合适 请随意迁移它 我下载了 Symfony 1 4 8 的沙箱并将文件复制到我的网络服务器 不幸的是 当我尝试访问时 symfony sf san
  • 如何使节点child_process连续执行

    How to exec连续地 例如ls after cd I tried exec require child process exec exec cd function exec ls function err stdout stderr