Node.js 是否可以将动态生成的Javascript数组(节点)滚动到Bash数组中?
因此,我目前正在使用以下语法将几个不同的Node.js 是否可以将动态生成的Javascript数组(节点)滚动到Bash数组中?,node.js,bash,shell,Node.js,Bash,Shell,因此,我目前正在使用以下语法将几个不同的env变量滚动到Docker容器中: 节点脚本: process.env['VAR1'] = 'someArbitraryValue'; process.env['VAR2'] = 'anotherArbitraryValue'; 然后执行一个bash脚本,如下所示: params=() [[ ! -z "$VAR1" ]] && params+=(-e "VAR1=$VAR1")
env
变量滚动到Docker容器中:
节点脚本:
process.env['VAR1'] = 'someArbitraryValue';
process.env['VAR2'] = 'anotherArbitraryValue';
然后执行一个bash脚本,如下所示:
params=()
[[ ! -z "$VAR1" ]] && params+=(-e "VAR1=$VAR1")
[[ ! -z "$VAR2" ]] && params+=(-e "VAR2=$VAR2")
docker run "${params[@]}"
这很好,因为我预先知道这些env变量的名称,我可以硬编码bash命令来获取它们的值并将它们插入参数中。然而,我希望能够做的是允许将动态生成的变量列表添加到params列表中
换句话说,我运行了一些函数,返回一个数组,如下所示:
var myArray = ['VAR3=somevalue', 'VAR4=anothervalue']
然后通过迭代其内容并附加它们,将其传递到参数中。因为不能在Bash中将数组设置为env变量,所以我不确定这是否可行
是否有方法执行此操作,或者我运气不佳?如果我没有遗漏任何内容,则是;使用(另请参见),可以将
myArray
的元素作为位置参数传递给bash脚本,并在其中对它们执行任何操作
const{execFile}=require('child_进程');
//在这里定义“myArray”
const child=execFile('./myscript.sh',myArray,(错误,stdout,stderr)=>{
如果(错误){
投掷误差;
}
控制台日志(stdout);
});
// ...
#/bin/bash-
参数=()
对于param;做
params+=(-e“${param}”)
完成
docker运行“${params[@]}”
太棒了!我已经使用Node很多年了,但我不知道child_进程。现在正在阅读文档。谢谢你,我可以确认一下吗