Computer >> 컴퓨터 >  >> 프로그램 작성 >> BASH 프로그래밍

Bash 스크립트에서 "if... else"를 사용하는 방법(예제 포함)

Bash 스크립팅은 개발자가 Linux에서 작업을 자동화하는 데 필수적인 도구입니다.

Bash 스크립트를 사용하여 로컬에서 개발 작업(예:배포용 파일 업로드, 앱 컴파일 또는 대량 이미지 크기 조정)을 자동화하고 서버 측 작업(예약된 이메일 보내기, 일정 간격으로 데이터 수집 또는 장치에 알림 보내기)을 자동화할 수 있습니다. ).

다른 작업이나 변수의 결과에 따라 일부 작업을 실행하고 싶을 것입니다. 여기서 if ... else 너를 도울 것이다. Bash 스크립트에서 이러한 의사 결정 프로세스를 조건문을 사용하여 호출합니다. .

이 가이드에서는 if… else에 대한 세부정보와 사용 예를 제공합니다. Bash의 명령문.

if 사용 성명서

조건이 true인 경우 간단한 if 문은 포함된 작업을 실행하며 다음과 같습니다.

if CONDITIONS; then
    ACTIONS
fi

전체 예:

#!/bin/bash
if [ 2 -lt 3 ]; then
    echo "2 is less than 3!"
fi

참고:

  • 모든 bash 스크립트는 줄로 시작합니다. #!/bin/bash
  • -lt 연산자는 첫 번째 값이 두 번째 값보다 작은지 확인합니다. 두 번째 값이 첫 번째 값보다 큰지 확인하려면 -gt을 사용합니다.
  • 논리 연산자 목록을 계속 읽으십시오.
  • 에코를 사용하고 있습니다. 명령줄에 텍스트를 출력하는 명령
  • 만약 문장은 항상 fi 로 끝납니다. 종료

else 사용 성명서

일련의 조건에 따라 작업을 수행한 다음 다른 작업을 수행하려는 경우  이러한 조건이 실패하면 else를 사용할 수 있습니다. 성명:

#!/bin/bash
echo -n "Enter number: "
read number
if [ $number -lt 3 ]; then
    echo "$number is less than 3!"
else
    echo "$number is not less than 3!"
fi

참고:

  • 값을 비교하고 텍스트를 출력하기 위해 위와 동일한 요소를 계속 사용하고 있습니다.
  • 읽기 사용자 입력을 받는 명령
  • 나중에 사용할 수 있도록 변수를 사용하여 값을 저장합니다.

elif 사용 (Else If) 문

여러 조건 세트를 확인하고 각 테스트가 true인 경우 다른 작업을 수행하려면 elif를 사용하세요. (else if) 문:

#!/bin/bash
echo -n "Enter number: "
read number
if [ $number -lt 3 ]; then
    echo "$number is less than 3!"
elif [ $number -eq 3]; then
    echo "$number is equal to 3!"
else
    echo "$number is not less than 3!"
fi

if의 여러 조건 성명서

확인하려는 조건이 여러 개인 경우 && (그리고 ) 및 || (또는 ) 연산자가 작업을 수행해야 하는지 여부를 결정합니다.

#!/bin/bash
echo -n "Enter number: "
read number
if [[ $number -lt 3 ]] && [[ $number -lt 0 ]]; then
    echo "$number is less than three and is negative"
elif [[ $number -lt 3 ]] || [[ $number -gt 6 ]]; then
    echo "$number is not negative, but is less than 3 or greater than 6"
else
    echo "$number is greater than3 and less than 6"
fi

문 중첩

if를 배치할 수 있습니다. 다른 if 안의 문 진술:

#!/bin/bash
echo -n "Enter number: "
read number
if [$number -gt 3]; then
    echo "$number is greater than 3"
    if [$number -gt 6]; then
        echo "$number is also greater than 6"
    else
        echo "$number is not also greater than 6"
    fi
fi

비교 연산자

위의 예에서는 -lt를 사용했습니다. (미만), -gt (보다 큼) 및 = (같음) 연산자. 다음은 일반적으로 사용되는 다른 논리 연산자입니다.

숫자 비교

$number1 -eq $number2 : Returns true if the variables are equal
$number1 -gt $number2 : Returns true if $number1 is greater than $number2
$number1 -ge $number2 : Returns true if $number1 is equal to or greater than $number2
$number1 -lt $number2 : Returns true if $number1 is less than $number2
$number1 -le $number2 : Returns true if $number1 is equal to or less than $number2

문자열 비교

$string1 = $string2 : Returns true if $string1 and $string2 are equal
$string1 != $string2 : Returns true if $string1 and $string2 are not equal

위에 표시된 것처럼 비교 표현식의 결과를 반대로 하려면 ! (NOT) 연산자 앞의 *!=는 NOT EQUALS를 의미합니다.

문자열을 비교할 때는 항상 큰따옴표로 묶어서 공백이 bash 스크립트.

또한 문자열이 포함된 변수를 따옴표로 묶어 잘못 해석되지 않도록 해야 합니다.

#!/bin/bash
echo -n "Enter string: "
read string
if ["$string" = "hello there!"]
    echo "You said hello there!"
fi

파일 또는 디렉토리 상태 확인

-d $filepath : Returns true if the $filepath exists and is a directory
-e $filepath : Returns true if the $filepath exists regardless of whether it's a file or directory
-f $filepath : Returns true if the $filepath exists and is a file
-h $filepath : Returns true if the $filepath exists and is a symbolic link
-r $filepath : Returns true if the $filepath exists and is readable
-w $filepath : Returns true if the $filepath exists and is writable
-x $filepath : Returns true if the $filepath exists and is executable

결론

자신만의 Bash 스크립트를 만들면 엄청난 시간을 절약할 수 있으며 기본 구성 요소를 알면 매우 간단하게 작성할 수 있습니다.

만약… 그렇지 않으면 문을 사용하면 스크립트가 사용자 입력 또는 파일 상태에 응답하는 방식을 제어할 수 있습니다.

자세히 알아보려면 다른 Bash 기사를 확인하세요.!