カールコマンドに改行文字 "\ n"を渡す際に問題が発生しました。

カールコマンドに改行文字 "\ n"を渡す際に問題が発生しました。

私の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

これがはっきりしていることを願っています。役に立ったのは幸いです。

関連情報