Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 是否可以将动态生成的Javascript数组(节点)滚动到Bash数组中?_Node.js_Bash_Shell - Fatal编程技术网

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_进程。现在正在阅读文档。谢谢你,我可以确认一下吗