비교 숫자에 shell

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-ge400 || 200 -lt200 || 000 -ge400 || 000 -lt200:구문 오류 식(오류가 토큰"400 || 200 -lt200 || 000 -ge400 || 000 -lt200")

변경하는 경우 괄호[[...]]그것은 항상 true 를 반환합니다. 변경하는 경우-lt<와 창기>=얻는 다음과 같은 오류가:

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

필요 없음을 명시적으로 면으로 $,als 오는 것을 보장하는 변수를 포함 다만 정수 번호입니다.

2021-11-23 14:23:27

((:response1 400||response1<200||응답 2 400||응답 2<200:구문 오류 식(오류가 토큰"400||response1<200||응답 2 400||응답 2<200")
Mykyta Shvets

당신은 무엇을 얻을 수행할 때 echo $BASH_VERSIONif 문?
user1934428

@MykytaShvets 에서 오류 메시지가 누락 > 연산자 response1 > 400response2 > 400 는 부품의 표현입니다.
Gordon Davisson

감사,실행한 후 다른 환경에서 적절한 bash 버전이
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ý
..................................................................................................................