Shell-Script: получить ошибку cURL, если не тот пользователь - PullRequest
0 голосов
/ 20 ноября 2018

Мой сценарий оболочки выглядит следующим образом:

#!/bin/bash
curl -f -T /home/skript_1.txt -u XXX:XXXXXXX! -k http://192.168.0.100/home/test.txt
res=$?
if test "$res" != 0; then
   echo "the curl command failed with: $res"
else
   echo "Success $res"
fi

Я использую это для ulpad файла ...

Теперь моя проблема в том, что я не могу получить все ошибки.Например, если я введу неправильный URL-адрес (правильный URL-адрес будет http://192.168.0.100:5005/home/test.txt),, загрузка не удастся, но код выхода по-прежнему будет 0.

Вот вывод с неправильным URL-адресом:

<html>
<head><title>302 Found</title></head>
<body bgcolor="white">
<center><h1>302 Found</h1></center>
<hr><center>nginx</center>
</body>
</html>
Success 0

Как я могу также получить эти ошибки?

Я также попробовал то же самое с целями cURL и ftp, там это работает со всеми ошибками.

1 Ответ

0 голосов
/ 20 ноября 2018

-w 'http_code %{http_code}' заставит curl добавить код состояния HTTP в конце вывода.

Возможно, вы могли бы перейти на эту новую версию, которую я только частично протестировал:

#!/bin/bash
serverResponse=$(curl -f -w 'http_code %{http_code}' -T /home/skript_1.txt -u XXX:XXXXXXX! -k http://192.168.0.100/home/test.txt)
res=$?
if test "$res" != 0; then
   printf "the curl command failed with: %s\n" "${res}"
else
   http_code="${serverResponse##*http_code }"
   if [[ ! -z "${http_code}" && "${http_code}" -ne 200 ]] ; then
     printf "Server sent back this http status: %s\n" "${http_code}"
   else
     printf "Success %s\n" "${res}"
   fi
fi
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...