Kabuktaki sayıları karşılaştır

0

Soru

Kabuktaki 2 yanıt kodunu karşılaştırırken sorun yaşıyorum. Curl çalıştırılıyor ve yanıtın 200 ile 400 arasında olup olmadığını doğrulaması gerekiyor. Ayrıca, bir sunucu kapalıyken yanıtın "000" olma olasılığı da vardır.

#!/bin/sh
response1="200" #curl first url
response2="000" #curl second url

if (( $response1 -ge 400 || $response1 -lt 200 || $response2 -ge 400 || $response2 -lt 200 )) ; then
  echo "Something went wrong, response code is not in success range"
  exit 1
else
  echo "Success"
  exit 0
fi

((: 200-ge 400 || 200 -lt 200 || 000 -ge 400 || 000 -lt 200: ifadede sözdizimi hatası (hata belirteci " 400 || 200 - lt 200 || 000 -ge 400 || 000 -lt 200 ")

Parantezleri değiştirirsem [[...]] her zaman doğru döner. - Lt'yi < ve-ge > olarak değiştirirsem= aşağıdaki hatayı alıyorum:

((: 200 = 400 || 200 < 200 || 000 = 400 || 000 < 200 : değişken olmayanlara atama girişiminde bulunuldu (hata belirteci "= 400 || 200 < 200 || 000 = 400 || 000

bash linux numbers script
2021-11-23 13:18:34
2

En iyi cevabı

3

Yanlış operatör. Doğru yazma şekli:

if (( response1 > 400 || response1 < 200 || response2 > 400 || response2 < 200 )) ; then

Açıkça dereferansa gerek yok $ ayrıca, değişkenlerinizin sadece tamsayı sayıları içermesi sağlandığı sürece.

2021-11-23 14:23:27

((: yanıt1 400 / / yanıt1 < 200 / / yanıt2 400 / / yanıt2 < 200: ifadedeki sözdizimi hatası (hata belirteci "400 || yanıt1 < 200 || yanıt2 400 || yanıt2 < 200 ")
Mykyta Shvets

Ne zaman sen bir echo $BASH_VERSION hemen önünde if deyim?
user1934428

@MykytaShvets Hata iletisinden, eksik > operatör içinde response1 > 400 ve response2 > 400 ifadenin parçaları.
Gordon Davisson

Teşekkürler, uygun bash sürümüyle farklı ortamlarda çalıştıktan sonra-bu işe yarıyor
Mykyta Shvets
1

Lütfen deneyin:

if [ $response1 -ge 400 ] || [ $response1 -lt 200 ] || [ $response2 -ge 400 
 ] || [ $response2 -lt 200 ] ; then
  echo "Something went wrong, response code is not in success range"
  exit 1
else
  echo "Success"
  exit 0
fi
2021-11-23 13:24:09

Diğer dillerde

Bu sayfa diğer dillerde

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................