11

スペースを含む Jenkins 環境変数 ([Jenkins の管理] -> [システムの構成] 画面の [グローバル プロパティ] という見出しの下で作成) の値を指定しようとしています。この環境変数を Execute Shell ビルド ステップで使用したいと考えています。ビルド ステップでコマンド ラインに表示する必要があるオプションは次のとおりです。

--platform="Windows 7"

コマンドラインで使用している構文は--platform=${VARIABLE_NAME}

どのようにフォーマットしようとしても、Jenkins は 2 つの値として扱われるように再フォーマットするようです。私が試してみました:

  • ウィンドウズ7
  • 「ウィンドウズ7」
  • 「ウィンドウズ7」
  • Windows\ 7

対応する結果は、シェルの実行のビルド ステップ中に出力された場合は次のとおりです。

  • --プラットフォーム=Windows 7
  • '--platform="Windows' '7"'
  • '--platform='\''Windows' '7'\'''
  • --platform=Windows/7

また、コマンド ライン構文を--platform='${VARIABLE_NAME}'およびに変更しようとし'--platform=${VARIABLE_NAME}'ましたが、いずれの場合も${VARIABLE_NAME}はまったく解決されず${VARIABLE_NAME}、結果のコマンドのように表示されます。

これを機能させる方法があることを願っています。どんな提案でも大歓迎です。

4

1 に答える 1

10

グローバル プロパティ セクションでは、特殊文字なしでスペースを使用できるはずです。

たとえば、変数「THIS_VAL」に値「HAS SPACES」を設定します。

私のテストビルドジョブは次のとおりです。

#!/bin/bash
set +v
echo ${THIS_VAL}
echo "${THIS_VAL}"
echo $THIS_VAL

出力は

[workspace] $ /bin/bash /tmp/hudson8126983335734936805.sh
HAS SPACES
HAS SPACES
HAS SPACES
Finished: SUCCESS

あなたがする必要があるのは、次のものを使用することだと思います:

--platform="${VARIABLE_NAME}"

注:一引用符ではなく、二重引用符を使用してください。一重引用符を使用すると、引用符内の内容がリテラルになります。つまり、変数は実際の値に解析されずにそのまま出力されます。したがって、「${VARIABLE_NAME}」はそのまま出力され、「Windows 7」に解析されません。


編集: 以下の @BobSilverberg コメントに基づいて、以下を使用します。

--platform="$VARIABLE_NAME"

注: 中括弧はありません。

于 2013-07-10T15:13:51.083 に答える