संख्या की तुलना में शैल

0

सवाल

मुद्दों की तुलना में 2 प्रतिक्रिया कोड में खोल । चल कर्ल और को मान्य करने की जरूरत है अगर प्रतिक्रिया के बीच है 200 और 400. इसके अलावा, वहाँ एक मौका है के लिए प्रतिक्रिया करने के लिए हो सकता है "000" जब एक सर्वर डाउन है.

#!/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 -जीई 400 || 200 -लेफ्टिनेंट 200 || 000 -जीई 400 || 000 -लेफ्टिनेंट 200 : सिंटैक्स त्रुटि अभिव्यक्ति में (त्रुटि टोकन "400 || 200 -लेफ्टिनेंट 200 || 000 -जीई 400 || 000 -लेफ्टिनेंट 200 ")

अगर मैं बदलने के लिए कोष्ठक [[...]] यह हमेशा सच रिटर्न । अगर मैं परिवर्तन -लेफ्टिनेंट करने के लिए < और जीई के लिए >= प्राप्त निम्नलिखित त्रुटि:

((: 200 = 400 || 200 < 200 || 000 = 400 || 000 < 200 : प्रयास काम करने के लिए गैर-चर (त्रुटि टोकन है "= 400 || 200 < 200 || 000 = 400 || 000 < 200 ")

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

सबसे अच्छा जवाब

3

गलत ऑपरेटर. सही लेखन का तरीका है:

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

कोई जरूरत नहीं करने के लिए स्पष्ट रूप से भिन्नता के साथ $, ए एल एस के रूप में लंबे समय यह सुनिश्चित किया है कि अपने चर के होते हैं बस पूर्णांक संख्या है.

2021-11-23 14:23:27

((: response1 400 || response1 < 200 || response2 400 || response2 < 200 : सिंटैक्स त्रुटि अभिव्यक्ति में (त्रुटि टोकन "400 || response1 < 200 || response2 400 || response2 < 200 ")
Mykyta Shvets

क्या तुम जब आप करते हैं एक echo $BASH_VERSION बस के सामने if बयान?
user1934428

@MykytaShvets से त्रुटि संदेश है, तो आप याद कर रहे हैं > ऑपरेटर में response1 > 400 और response2 > 400 भागों की अभिव्यक्ति है ।
Gordon Davisson

धन्यवाद, के बाद चल रहा है में अलग अलग वातावरण के साथ उचित मार संस्करण - यह काम करता है
Mykyta Shvets
1

के साथ प्रयास करें:

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

अन्य भाषाओं में

यह पृष्ठ अन्य भाषाओं में है

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................

इस श्रेणी में लोकप्रिय

लोकप्रिय सवाल इस श्रेणी में