私のJenkins複数行パラメータは、次のようにSERVER_IP
Unixコマンドに渡される変数から読み込まれます。curl
カールコマンドはWebページ(Jenkins Build)を起動し、Webページにパラメータを渡します。
curl -k -X POST 'https://user1:[email protected]:9043/job/Scanner/buildWithParameters?SERVER_IP=192.118.89.106\n10.9.20.13\n10.0.23.121&USER=root&REPORT_NAME=ihs_run' -H "Jenkins-Crumb:8c6f641ab7b9d1e7839c17a2be844490f2c88c5f9ae90c5ae5d52d7eae1"
カールコマンドを実行すると、次のエラーが発生します。
Curl:(3)URLに無効な文字が含まれています。
残念ながら、私はSERVER_IP変数の変更を制御できません。
エラーを防ぐために、curlコマンドにSERVER_IP値を渡すにはどうすればよいですか?
答え1
echo 'https://user1:[email protected]:9043/job/Scanner/buildWithParameters?SERVER_IP='${SERVER_IP}'&USER=root&REPORT_NAME=ihs_run' -H "Jenkins-Crumb:8c6f641ab7b9d1e7839c17a2be844490f2c88c5f9ae90c5ae5d52d7eae1" | sed ':a;N;$!ba;s/\n/\\n/g' | xargs curl -k -X POST
これ協会この例で使用されているsedコマンドの良い説明があります。私は\\n
あなたが欲しいと思う結果と一致するものを追加しました。これにより、削除されたバージョンのURLがxargs
標準入力からコマンドラインを作成して実行したい人に渡されます。
たとえば、次は「two」ディレクトリ内にネストされた「one」というディレクトリを作成します。
echo 'one/two' | xargs mkdir -p
->と同じmkdir -p one/two
これがはっきりしていることを願っています。役に立ったのは幸いです。