[英]How to split a string that is separated by comma, into multiple strings using Bash
我正在使用 workflow_dispatch 为我的输入数据创建一个 git-hub 工作流
workflow_dispatch:
inputs:
Browser:
description: 'Select what browsers to use'
required: true
default: 'Chrome'
我得到了我的设置工作,我将工作流调度数据传输到 json,所以我可以在我的矩阵中使用它
jobs:
setup:
runs-on: ubuntu-latest
outputs:
matrix-browser: ${{ steps.set-matrix-browser.outputs.matrix-browser }}
steps:
- uses: actions/checkout@v2
- id: set-matrix-browser
run: |
testBro="${{ github.event.inputs.Browser }}"
echo "::set-output name=matrix-browser::[\"${testBro}\"]"
echo "[\"${testBro}\"]"
所以,我的问题是:如果我的github.event.inputs.Browser = "Chrome, Safari, Edge"
中有两个或多个浏览器,我可以将它们拆分,每个浏览器都是一个单独的字符串。
我希望我的 output 看起来像这样,
[“Chrome”、“Safari”、“Edge”]
但相反我得到了这个
[“铬,Safari,边缘”]
你能建议我如何更改这行代码吗?
echo "::set-output name=matrix-browser::[\"${testBro}\"]"
我试过这样的事情:
echo "::set-output name=matrix-browser::[\"${testBro | tr "," "\n"}\"]"
假设testBro="Chrome,Safari,Edge"
echo [\"$testBro\"] |sed 's/,/\", \"/g'
或整行echo "::set-output name=matrix-browser:: $(echo [\"$testBro\"] |sed 's/,/\", \"/g')"
给出 output
::set-output name=matrix-browser:: ["Chrome", "Safari", "Edge"]
我想通了
echo "::set-output name=matrix-browser::[\"${testBro//', '/\",\"}\"]"
谢谢大家
我有一个类似的问题,我输入 test1,test2 作为 github 存储库的输入,使用 github 操作工作流输入,并将其存储在.auto.tfvars
echo "repositories = ["${{ github.event.inputs.github-repo }}"]" >./github.auto.tfvars
它以这种格式显示 ["test1, test2"]
我怎样才能像 ["test1", "test2"] 那样实现它
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.