首页 > 解决方案 > 按顺序执行命令的脚本php

问题描述

我试图弄清楚如何编写一个基本上一个接一个地执行的脚本(前提是上一个命令已经完成)。

php bin/console SOME:CUSTOM:COMMAND <PART_1_ARGUMENT> <PART_2_ARGUMENT> --env=xxx

例如,假设我有以下作为我的论点

然后我的命令将依次执行,就像

php bin/console COMMAND Apple pie --env=xxx 

然后紧接着

php bin/console COMMAND Apple crumble --env=xxx 

等等?

任何信息都有帮助我已经用谷歌搜索了几个小时..(新手)

标签: phparraysbash

解决方案


您可以使用循环:

for args in "Apple pie" "Apple crumble" "Pear apple"
do
    php bin/console COMMAND $args --env=xxx
done

一个警告:如果任何参数可以包含空格或通配符,这将不起作用。您不能$args在命令行中引用,因为您需要Appleandpie是单独的参数。将引号放在字符串中是行不通的,因为在扩展变量时不会解析引号。你可以用两个数组来做到这一点:

arg1=("Apple" "Apple" "Pear")
arg2=("pie" "crumble" "apple")

for (( i=0; i < ${#arg1[@]}; i++ ))
do
    php bin/console COMMAND "${arg1[$i]}" "${arg2[$i]}" --env=xxx
done

推荐阅读