Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/shell/5.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
Shell 如何从数组中运行bash命令?_Shell - Fatal编程技术网

Shell 如何从数组中运行bash命令?

Shell 如何从数组中运行bash命令?,shell,Shell,我在shell文件(app.sh)中运行了三个命令: 如何使用foreach创建数组并将值传递给命令 如果是nodejs,我会: ['my-app1', 'my-app2', 'my-app3'].forEach(i => { … `-f .docker/docker-compose.${i}.yml push ${i}` ...; }) 在BASH中,可以使用数组和for循环,如下所示 arr=( 'my-app1' 'my-app2' 'my-app3' ) for i in

我在shell文件(app.sh)中运行了三个命令:

如何使用foreach创建数组并将值传递给命令

如果是nodejs,我会:

['my-app1', 'my-app2', 'my-app3'].forEach(i => {

  … `-f .docker/docker-compose.${i}.yml push ${i}` ...;
})

在BASH中,可以使用数组和for循环,如下所示

arr=( 'my-app1' 'my-app2' 'my-app3' )

for i in "${arr[@]}" ; do
   docker-compose -f ".docker/docker-compose.${i}.yml" push "${i}"
done

请注意,您不需要使用逗号来分隔数组元素,因为在BASH中,空格是一个标记分隔符。

如果是Linux,则在脚本中使用类似的内容。对于$(cat lists.txt)中的n,请执行echo“立即处理$n文件名”#对下面的$n执行一些操作,如计算行号#wc-l“$n”完成
arr=( 'my-app1' 'my-app2' 'my-app3' )

for i in "${arr[@]}" ; do
   docker-compose -f ".docker/docker-compose.${i}.yml" push "${i}"
done