node.js - 我可以从程序执行交互式命令吗?
问题描述
我想从程序执行命令。
const child_process = require("child_process")
const data = parseConfigFile("/path/to/config.json")
const {command, param1, param2, args} = convert(data)
child_process.exec(
`${command} --param1=${param1} --param2=${param2} ${args.join(" ")}`
)
如果command
不是交互式命令,例如node file.js
,cp a.txt b.txt
或等,它可以正常工作...
但是,如果command
是交互式命令,例如psql
, php -a
, parted
, or etc...,它就不起作用。
我认为有必要将标准输入和标准输出连接到子进程。我可以从程序执行交互式命令吗?
解决方案
你可以,要做到这一点,你必须拦截 stdio 和 stderr 流。
在此处查看示例和说明:https ://nodejs.org/api/process.html#process_process_stdin
另请注意,有很多 npm 模块提供 shell 命令访问
推荐阅读
- spring-boot - 带有 Vault 的 Spring Cloud Config Server - Vault 覆盖本机配置文件中的任何值
- python - 将数据框的行保存到单独的 txt 文件中
- java - 无法理解如何在下面的课程中完成自动接线
- python - 如何解析两个粘在一起的元素?
- jasper-reports - 基于另一个字段的字段求和
- java - 将 Apache HttpClient 响应拦截器与请求匹配
- date - 我在 JSON 中保存了一个日期,当我重新加载它时,它看起来几乎一样......那是什么 `m=+2.58`?
- vue.js - Vuetify 删除 v-data-table 上的分页
- c# - 如何将 wacom 数位板集成到 WPF
- amazon-web-services - 嵌套前缀时无法在 s3 存储桶上应用生命周期策略