เปรียบเทียบตัวเลขในเชลล์

0

คำถาม

มีปัญหาเรื่องเปรียบเทียบ 2 การตอบสนองรหัสอยู่ในเปลือกห่อหุ้มตัวเอง กำลัง curl และต้องการจะพิสูจน์ความถูกต้องของถ้าการตอบสนระหว่าง 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-ge 400 || 200 -มัน 200 || 000 -ge 400 || 000 -มัน 200:รูปแบบการสั่งงานผิดพลาดในสำนวน(เกิดข้อผิดพลาดคือสัญลักษณ์"400 || 200 -มัน 200 || 000 -ge 400 || 000 -มัน 200")

ถ้าฉันเปลี่ยนเล็งไปที่[[...]]มันเสมอจะได้ค่าเป็นจริง ถ้าฉันเปลี่ยน-มันต้อง<และ ge จะ>=ได้ตามข้อผิดพลาดคือ:

((: 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

ไม่จำเป็นต้องในข้อบังคับ dereference กับ $,als ราบเท่าที่มันช่วยให้เขาไม่รอดต่างหาที่ของตัวแปรมีแค่จำนวนเต็มตัวเลข

2021-11-23 14:23:27

((:response1400||response1<200||response2400||response2<200:รูปแบบการสั่งงานผิดพลาดในสำนวน(ตั๋วเข้าใช้งานข้อผิดพลาดคือ"400||response1<200||response2400||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ý
..................................................................................................................

ดังอยู่ในนี้หมวดหมู่

ดังคำถามอยู่ในนี้หมวดหมู่