bashは複数の単語文字列をcliコマンドで解析しません。

bashは複数の単語文字列をcliコマンドで解析しません。

複数の単語で構成される文字列が生成されたGitHubリリースの説明に正常に渡されるようにするには、以下のGitHubワークフローのCLIコマンドフラグで具体的に-f body=$DESCRIPTION何を変更する必要がありますか?gh api"Lots of new stuff"

現在私たちが経験している問題は、この文字列に1つの引数が必要ですが、4つの引数が受け取られたという"Lots of new stuff"エラーが発生することです。body

単一の単語文字列を同じワークフローに渡すと、エラーなしで正常に実行されます。

bodyフラグをreadに変更すると、公開され-f body='$DESCRIPTION'た結果の説明がとしてレンダリングされます$DESCRIPTION

ワークフローコード:

name: release-manually
on:
  workflow_dispatch:
    inputs:
      version:
        description: 'Version'
        required: true
        type: string
      description:
        description: 'Description of release'
        required: true
        type: string
jobs:
  release-a-version:
    runs-on: ubuntu-latest
    steps:
      - shell: bash
        name: Release
        env:
          DESCRIPTION: ${{ inputs.description }}
          VERSION: ${{ inputs.version }}
          GH_TOKEN: ${{ secrets.GIT_PAT }}
        run: |
          vers="_linux_"$VERSION
          echo "About to print version"
          echo $vers
          nameOfRelease="release_name"$vers
          echo "About to print name of release"
          echo $nameOfRelease 
          echo "About to create release"
          gh api \
            --method POST \
            -H "Accept: application/vnd.github+json" \
            /repos/AccountName/RepoName/releases \
            -f tag_name=$vers \
            -f target_commitish='branch-name' \
            -f name=$nameOfRelease \
            -f body=$DESCRIPTION \
            -F draft=false \
            -F prerelease=false \
            -F generate_release_notes=false 

ベストアンサー1

私はこの質問が私に新しいことを学ぶことができるとは思わなかった。自分で訂正しました。

まず、この質問は重複としてマークされる可能性があると思います。引用符の説明@rugkが言ったように重複 stackoverflow 質問と呼ばれます。

VAR=$'hello\nworld'ここで興味深いのは、次のものとまったく同じ機能がわからないことです。

VAR='hello
world'

使え-f body="$DESCRIPTION"ば大丈夫でしょう。上記のリンクも見つけて、一度見てください。パラメータ拡張そして徹底した理解。

おすすめ記事