对于我们正在尝试构建的应该能够动态响应的流程,我需要一点帮助。
这个过程有点像这样。用户将针对环境提交处理请求,提交字符串值数组作为运行时值。该过程会将这些作为 bash 中的数组接收,并循环遍历它们,根据预定义的字符串列表检查它们的有效性。一旦发现它们是有效的,就会根据字符串中的值做出不同的反应。
示例:用户提交带有值的流程请求"abc", "bcd", "cde", "def"
值"abc", "bcd", and "def"
是有效的。
我们进行了一些操作以使它们可用:
echo ${p:inputArray}
inputArray="${p:inputArray}"
inputArray=${inputArray//]/}
inputArray=${inputArray//[/}
inputArray=${inputArray//,/}
inputArray=( "${inputArray[@],,}" )
然后遍历每个值并做出反应:
for inputValue in $inputArray; do
if [[ "${validInputArray[@]}" =~ "${inputValue}" ]]; then
// Check if value is the outlier case "A"
// Or if the value is normal (but multiple) case "B"
// If case "B" then we'll build a variable for it
// It should be something like ${p:environment/$inputValue.action}
例如,理想情况下,这会给我 ${p:environment/abc.action} 的值。但事实并非如此。它给了我一个字符串。我无法评估动态创建的属性请求,因为所有属性都是在初始化时评估的,而不是即时评估的。
我们可以通过“case”方法来处理它——但它有点难看,而且随着我们有效输入数量的增加,它只会变得更难看。