J'essaie de tester si le proxy fonctionne correctement à l'aide de ce script. Le problème est que peu importe ce qui se termine par echo "Le proxy fonctionne". Des idées s'il vous plaît?
export http_proxy='http://proxy.test.cz:1234/'
OUTPUT_FILE=/tmp/$$.txt
wget -nv --proxy-user=test --proxy-password=test google.com > ${OUTPUT_FILE} 2>&1
grep -q '<H1>You cant use internet</H1>' ${OUTPUT_FILE}
if [ "$?" -eq '0' ]
then
echo "Proxy isnt working. " | mail -s "Proxy isnt working" -r "No-reply<[email protected]>" test@mail.cz
else
echo "Proxy is working"
fi
rm -f /tmp/$$.txt
if [ $?...]
est un anti-shell shell; il suffit de tester la commande directement à la place. Et pas besoin de$OUTPUT_FILE
; il suffit d' utiliser un tuyau:if wget ... | grep ....; then
. Peut-être que votre test est faux, par exemple, si vous ne le faites pas correctement ou mal .Réponses:
Bien que question un peu ancienne, mais il peut encore avoir une certaine valeur pour fournir une autre réponse. Alors voici le mien:
la source
Le problème est à cause des citations autour de $? dans le si chèque:
Lorsque le grep n'a pas trouvé la chaîne recherchée, le code de retour était 1. Donc, si vérification équivaut à:
qui est toujours faux, vous obtenez donc "le proxy fonctionne".
Utilisation
au lieu.
la source
Je l'ai résolu de cette façon:
la source