ひどい失敗メッセージ(戻りコードが!= 0の場合)、ステータスコード、出力、およびカールのエラーメッセージを4つの異なる変数に抽出します。

ひどい失敗メッセージ(戻りコードが!= 0の場合)、ステータスコード、出力、およびカールのエラーメッセージを4つの異なる変数に抽出します。

curl解放された項目から抽出する必要があります。

  • 私のコマンドがひどく失敗した場合に備えて、ゼロ以外の?$戻りコードを含むbashエラーメッセージ
  • 接続サーバーから返されたhttpステータスコード
  • 20x以外のステータスコードに付属するエラーメッセージ
  • コマンド出力メッセージ

そして、4つすべてを4つの異なる変数に渡します。

私ができることは次のとおりです。次の要求でワークスペースが存在しない場合は、ワークスペースを作成します。

URL=$1
USER=$2
PASSWORD=$3

WORKSPACE=ecoemploi

# Créer un workspace ecoemploi (workspace par défaut)
CREATE_WORKSPACE_JSON=$(cat <<EOF
{
   "workspace":
   {
     "name": "$WORKSPACE"
   }
}
EOF
)

CREATE_WORKSPACE_RESPONSE=$(curl --silent -X POST --write-out "%{http_code}" \
   -H 'Content-type: text/json' -u "$USER:$PASSWORD" \
   "$URL/workspaces" -d "$CREATE_WORKSPACE_JSON")

if [ $? -ne 0 ]; then
   echo "La création de workspace dans geoserver a échoué avec le code $? : $CREATE_WORKSPACE_RESPONSE"
   exit $?
fi

echo "$CREATE_WORKSPACE_RESPONSE"

curl --silent -X POST --write-out '%{http_code}' -H 'Content-type: text/json' -u admin:geoserver http://localhost:8080/geoserver/rest/workspaces -d '{"workspace": {"name": "ecoemploi"}}'たとえば、。


私が接続しているサーバーの動作は次のようになるため、変数間でディスパッチする必要があります。

  1. すべてが正常でワークスペースが存在しない場合は、次のようにecho "$CREATE_WORKSPACE_RESPONSE"表示されます。
    ecoemploi201

  2. ターゲットワークスペースがすでに存在する場合は、echo以下が表示されます。

<html>
<head>
<meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/>
<title>Error 409 Workspace &apos;ecoemploi&apos; already exists</title>
</head>
<body><h2>HTTP ERROR 409 Workspace &apos;ecoemploi&apos; already exists</h2>
<table>
<tr><th>URI:</th><td>/geoserver/rest/workspaces</td></tr>
<tr><th>STATUS:</th><td>409</td></tr>
<tr><th>MESSAGE:</th><td>Workspace &apos;ecoemploi&apos; already exists</td></tr>
<tr><th>SERVLET:</th><td>dispatcher</td></tr>
</table>
<hr/><a href="https://eclipse.org/jetty">Powered by Jetty:// 9.4.48.v20220622</a><hr/>

</body>
</html>
409

--output /dev/nullコマンドにaを追加すると、次のものが返されます。

  1. 201
  2. 409

ただし、どちらの場合も説明が失われます。

  1. ステータス201コードは、stdoutによって生成されたワークスペースの名前を渡します。
  2. 失敗メッセージ409にはstdoutと思われる出力が表示されます。 stderrに何があるのか​​知りたいです。

次の太字変数を埋めるステートメントを作成するにはどうすればよいですか?

ワークスペースエラーの生成=$(curl --silent -X POST --write-outHTTP_STATUS_CODE
-H 'コンテンツタイプ: text/json' -u "$USER:$PASSWORD"
"$URL/workspaces" -d "$CREATE_WORKSPACE_JSON") 1>CREATE_WORKSPACE_STDOUT2>CREATE_WORKSPACE_STDERR

エンドユーザーメッセージを調べて作成するために変数を$CREATE_WORKSPACE_ERROR送信$HTTP_STATUS_CODEして生成しますか?$CREATE_WORKSPACE_STDOUT$CREATE_WORKSPACE_STDERR

ベストアンサー1

おすすめ記事