logo

Bash 스크립팅 – If 문

Bash는 명령 언어 통역사입니다. 대부분의 GNU/의 기본 명령 해석기입니다. 리눅스 시스템 다양한 운영 체제에서 널리 사용 가능합니다. 이름은 ~의 약자이다. 본어게인 쉘 . 스크립팅을 사용하면 대화형으로 하나씩 실행되는 명령을 실행할 수 있습니다.

이번 글에서는 bash 스크립팅의 if 문에 대해 논의하겠습니다.

Bash If 문

Bash의 `if` 문의 기본 구문은 다음과 같습니다.

#!/bin/bash  if [ condition ]; then  # code to be executed if the condition is true fi>

설명:

  • if [ condition ]; then> : 이 줄은 if 문을 시작합니다.condition>평가되는 표현식입니다. 조건이 true이면 내부 코드는then>블록이 실행됩니다.
  • # code to be executed if the condition is true> : if 문에 명시된 조건이 true일 경우 실행되는 코드 블록입니다.
  • fi> : if 문의 끝을 표시합니다.

숫자가 짝수인지 확인하는 Bash 스크립트

다음은 예시입니다 스크립트 그러면 숫자를 입력하라는 메시지가 표시되고 주어진 숫자가 짝수인지 확인합니다.

#!/usr/bin/bash
# 이 스크립트는 사용자에게 숫자를 입력하라는 메시지를 표시하고 짝수인지 확인한 후 그에 따라 메시지를 인쇄합니다.
# 사용자에게 숫자를 입력하라는 메시지를 표시합니다.

echo -n 번호 입력:
x를 읽어라

# 입력한 숫자가 짝수인지 확인
if [ $((x % 2)) == 0 ]; 그 다음에
에코 번호는 짝수입니다
BE

설명:

  1. #!/usr/bin/bash> : Bash 인터프리터의 경로를 지정하는 shebang 라인입니다. Bash를 사용하여 스크립트를 실행해야 함을 나타냅니다.
  2. echo -n 'Enter Number: '> : 이 줄은 개행 문자 없이 Enter Number: 프롬프트를 인쇄합니다(-n>옵션). 사용자가 숫자를 입력할 때까지 기다립니다.
  3. read x> : 사용자 입력을 읽고 이를 변수에 할당합니다.x>.
  4. if [ $((x % 2)) == 0 ]; then> : 이 줄은 입력된 숫자의 나눗셈의 나머지 부분(x>) x 2는 0과 같습니다. true이면 숫자가 짝수임을 의미합니다.
  5. echo 'Number is Even'> : if 문의 조건이 true이면 이 줄은 Number is Even을 콘솔에 인쇄합니다.

산출:

숫자가 짝수인지 확인하는 Bash 스크립트

숫자가 짝수인지 확인하는 Bash 스크립트

메모: 스크립트는 사용자가 숫자가 아닌 값을 입력하는 경우를 처리하지 않습니다. 사용자가 숫자가 아닌 값을 입력하면 예상치 못한 결과가 발생할 수 있습니다. 이 문제를 해결하기 위해 추가 입력 유효성 검사를 추가할 수 있습니다.

Bash if-else 문

Bash의 `if-else` 문의 기본 구문은 다음과 같습니다.

#!/bin/bash

if [ 조건 ]; 그 다음에

# 조건이 참일 경우 실행되는 코드

또 다른

# 조건이 거짓일 경우 실행되는 코드

BE

설명:

  • if [ condition ]; then> : 이 줄은 if 문을 시작합니다.condition>평가되는 표현식입니다. 조건이 true이면 내부 코드는then>블록이 실행됩니다.
  • # code to be executed if the condition is true> : if 문에 명시된 조건이 true일 경우 실행되는 코드 블록입니다.
  • else> : if 문의 조건이 false인 경우,else>블록이 실행됩니다.
  • # code to be executed if the condition is false> : if 문에 명시된 조건이 false인 경우 실행되는 코드 블록입니다.
  • fi> : if-else 문의 끝을 표시합니다.

Bash 스크립트에서 if-else 문을 사용하여 더 큰 숫자를 찾는 방법은 무엇입니까?

다음은 Bash 스크립트에서 if-else 문을 사용하여 더 큰 숫자를 찾는 Bash 스크립트입니다.

#!/bin/bash
# 사용자에게 x 값을 입력하라는 메시지를 표시합니다.

echo -n x 값을 입력합니다:
x를 읽어라

자바의 인스턴스 오브

if [ $x -gt 5 ]; 그 다음에
에코 x가 5보다 큽니다.
또 다른
에코 x는 5보다 크지 않습니다.
BE

적출:

  • #!/bin/bash : 이 줄은 shebang이라고 하며 Bash 셸을 사용하여 스크립트를 해석하고 실행해야 함을 나타냅니다.
  • # 사용자에게 x 값을 입력하라는 메시지를 표시합니다. : 다음 줄의 목적을 나타내는 주석입니다.
  • echo -n x 값을 입력합니다: : 이 줄은 다음 줄로 이동하지 않고 Enter the value of x:라는 메시지를 터미널에 인쇄합니다. 사용자는 같은 줄에 값을 입력합니다.
  • x를 읽어라 : 이 줄은 사용자의 입력을 읽고 이를 변수 'x'에 할당합니다.
  • if [ $x -gt 5 ]; 그 다음에 : 'x'의 값이 5보다 큰지 확인하는 if 문입니다.
    • $x : 변수 'x'의 값을 나타냅니다.
    • -gt : 수치 비교의 맥락에서 더 크다는 뜻입니다.
    • 5 : 비교되는 값입니다.
  • 에코 x가 5보다 큽니다. : 이전 줄의 조건이 true이면 이 줄이 실행되어 x가 5보다 크다는 것을 터미널에 인쇄합니다.
  • 또 다른 : if 문의 조건이 false이면 스크립트는 else 블록으로 이동합니다.
  • 에코 x는 5보다 크지 않습니다. : 이 줄은 'x'의 값이 5보다 크지 않으면 실행되며, x는 5보다 크지 않은 것으로 터미널에 인쇄됩니다.
  • BE : if-else 블록의 끝을 나타냅니다.

산출:

if-else를 사용하여 더 큰 수 찾기

if-else를 사용하여 더 큰 수 찾기

Bash if-elif-else 문

그만큼if-elif-else>Bash의 문은 조건부 분기에 사용됩니다. 이를 통해 여러 조건을 지정하고 이러한 조건의 평가에 따라 다양한 코드 블록을 실행할 수 있습니다.

Bash의 `if-elif-else` 문의 기본 구문은 다음과 같습니다.

#!/bin/bash

if [ 조건1 ]; 그 다음에
# 조건1이 참일 때 실행되는 코드
elif [ 조건2 ]; 그 다음에
# 조건2가 참일 때 실행되는 코드
elif [조건3]; 그 다음에
# 조건3이 참일 때 실행되는 코드
또 다른
# 조건 중 어느 것도 참이 아닐 때 실행되는 코드
BE

설명:

  • if [ 조건1 ]; 그 다음에 : 여기가 시작점이다.if-elif-else>성명. 이 블록 내의 코드는 다음과 같은 경우에 실행됩니다.condition1>사실이다.
  • # 조건1이 참일 때 실행되는 코드 : 이 주석을 실행하려는 실제 코드로 바꾸십시오.condition1>사실이다.
  • elif [ 조건2 ]; 그 다음에 : 만약에condition1>false이면 스크립트가 확인합니다.condition2>. 만약에condition2>true이면 이 블록 내의 코드가 실행됩니다.
  • # 조건2가 참일 때 실행되는 코드 : 이 주석을 실행하려는 실제 코드로 바꾸십시오.condition2>사실이다.
  • elif [조건3]; 그 다음에 : 둘 다라면condition1>그리고condition2>false이면 스크립트가 확인합니다.condition3>. 만약에condition3>true이면 이 블록 내의 코드가 실행됩니다.
  • # 조건3이 참일 때 실행되는 코드 : 이 주석을 실행하려는 실제 코드로 바꾸십시오.condition3>사실이다.
  • 또 다른 : 위의 조건(조건1, 조건2, 조건3 등) 중 어느 것도 참이 아닌 경우,else>블록이 실행됩니다.
  • # 조건 중 어느 것도 참이 아닐 때 실행되는 코드 : 조건 중 어느 것도 true가 아닌 경우 이 주석을 실행하려는 실제 코드로 바꿉니다.
  • BE : 이것으로 이벤트가 끝났습니다.if-elif-else>성명. fi라는 단어는 철자를 거꾸로 쓰면 Bash에서 조건부 블록을 닫는 데 사용됩니다.

Bash에서 'if-elif-else' 문을 사용하여 숫자가 양수, 음수 또는 0인지 확인하는 방법은 무엇입니까?

위 예제의 코드를 확장하여 0을 확인하는 조건을 추가해 보겠습니다.

#!/bin/bash

# 사용자에게 숫자를 입력하라는 메시지를 표시합니다.

echo -n 숫자를 입력하세요:
읽은 숫자

if [ $num -gt 0 ]; 그 다음에
echo $num은 양수입니다.
elif [ $num -lt 0 ]; 그 다음에
echo $num은 음수입니다.
또 다른
echo $num은 0입니다.
BE

설명:

  • #!/bin/bash : 이 줄은 Bash 셸을 사용하여 스크립트를 해석하고 실행해야 함을 나타내는 shebang입니다.
  • # 사용자에게 숫자를 입력하라는 메시지를 표시합니다. : 다음 줄의 목적을 나타내는 주석입니다.
  • echo -n 숫자를 입력하세요: : 이 줄은 다음 줄로 이동하지 않고 Enter a number: 메시지를 터미널에 인쇄합니다. 사용자는 같은 줄에 번호를 입력합니다.
  • 읽은 숫자 : 이 줄은 사용자의 입력을 읽고 이를 변수 'num'에 할당합니다.
  • if [ $num -gt 0 ]; 그 다음에 : 'num'의 값이 0보다 큰지 확인하는 if 문입니다.
    • $num : 변수 'num'의 값을 나타냅니다.
    • -gt : 수치 비교의 맥락에서 더 크다는 뜻입니다.
    • 0 : 비교되는 값입니다.
  • echo $num은 양수입니다. : 이전 줄의 조건이 true이면 이 줄이 실행되고 $num이 양수로 인쇄됩니다. 터미널로.
  • elif [ $num -lt 0 ]; 그 다음에 : if 문의 조건이 false인 경우 'num'의 값이 0보다 작은지 확인하는 라인입니다.
    • $num : 변수 'num'의 값을 나타냅니다.
    • -lt : 수치 비교의 맥락에서 미만을 의미합니다.
    • 0 : 비교되는 값입니다.
  • echo $num은 음수입니다. : elif 문의 조건이 true이면 이 줄이 실행되고 $num이 음수로 인쇄됩니다. 터미널로.
  • 또 다른 : if 및 elif 문의 조건이 모두 false인 경우 스크립트는 else 블록으로 이동합니다.
  • echo $num은 0입니다. : 이 줄은 'num'의 값이 0보다 크고 0보다 작지 않은 경우 실행되며 $num은 0으로 인쇄됩니다. 터미널로.
  • BE : if-elif-else 블록의 끝을 나타냅니다.

산출:

if-elif-else를 사용하여 숫자가 양수, 음수 또는 0인 경우

if-elif-else를 사용하여 숫자가 양수, 음수 또는 0인 경우

Bash 중첩 if 문

Bash에서는 중첩을 사용할 수 있습니다if>더 복잡한 조건 구조를 만드는 명령문입니다. 중첩된 구문은 다음과 같습니다.if>성명:

#!/bin/bash

if [ 조건1 ]; 그 다음에
# 조건1이 참일 때 실행되는 코드
if [ 조건2 ]; 그 다음에
# 조건2가 참일 때 실행되는 코드
또 다른
# 조건2가 거짓일 경우 실행될 코드
BE
또 다른
# 조건1이 거짓일 경우 실행될 코드
BE

설명:

  • if [ 조건1 ]; 그 다음에 : 여기는 바깥쪽이에요if>성명. 만약에condition1>true이면 이 블록 내부의 코드가 실행됩니다.
  • # 조건1이 참일 때 실행되는 코드 : 이 주석을 실행하려는 실제 코드로 바꾸십시오.condition1>사실이다.
  • if [ 조건2 ]; 그 다음에 : 외부 블록 내부if>진술, 내부가 있습니다if>성명. 만약에condition2>true이면 이 블록 내부의 코드가 실행됩니다.
  • # 조건2가 참일 때 실행되는 코드 : 이 주석을 실행하려는 실제 코드로 바꾸십시오.condition2>사실이다.
  • 또 다른 : 만약에condition2>내부에if>문이 거짓이면 내부 코드는else>내부 블록if>명령문이 실행됩니다.
  • # 조건2가 거짓일 경우 실행될 코드 : 이 주석을 실행하려는 실제 코드로 바꾸십시오.condition2>거짓입니다.
  • BE : 내부의 끝을 표시합니다.if>성명.
  • 또 다른 : 만약에condition1>바깥쪽에if>문이 거짓이면 내부 코드는else>외부의 블록if>명령문이 실행됩니다.
  • # 조건1이 거짓일 경우 실행될 코드 : 이 주석을 실행하려는 실제 코드로 바꾸십시오.condition1>거짓입니다.
  • BE : 아우터의 끝을 표시합니다.if>성명.

중첩된 If 문을 사용하여 Bash에서 연령 자격 및 노인 혜택을 확인하는 방법은 무엇입니까?

중첩된 if를 사용하도록 위의 코드를 약간 수정해 보겠습니다.

#!/bin/bash
# 사용자에게 나이를 입력하라는 메시지를 표시합니다.
echo -n 나이를 입력하세요:
나이를 읽어라

if [ $age -ge 18 ]; 그 다음에
echo 당신은 투표할 자격이 있습니다.
if [ $age -ge 65 ]; 그 다음에
echo 귀하는 또한 노인 혜택을 받을 자격이 있습니다.
또 다른
echo 귀하는 아직 노인 혜택을 받을 자격이 없습니다.
BE
또 다른
echo 귀하는 아직 투표할 자격이 없습니다.
BE

설명:

  • #!/bin/bash : 이 줄은 Bash 셸을 사용하여 스크립트를 해석하고 실행해야 함을 나타내는 shebang입니다.
  • # 사용자에게 나이를 입력하라는 메시지를 표시합니다. : 다음 줄의 목적을 나타내는 주석입니다.
  • echo -n 나이를 입력하세요: : 이 줄은 다음 줄로 이동하지 않고 Enter your age: 메시지를 터미널에 인쇄합니다. 사용자는 같은 줄에 나이를 입력합니다.
  • 나이를 읽어라 : 이 줄은 사용자의 입력을 읽고 이를 'age' 변수에 할당합니다.
  • if [ $age -ge 18 ]; 그 다음에 : 'age' 값이 18 이상인지 확인하는 if 문입니다.
    • $연령 : 'age' 변수의 값을 나타냅니다.
    • -ge : 수치 비교에서 크거나 같음을 나타냅니다.
    • 18 : 비교되는 값입니다.
  • echo 당신은 투표할 자격이 있습니다. : 이전 라인의 조건이 true이면 이 라인이 실행되어 You are voted to vote를 인쇄합니다. 터미널로.
  • if [ $age -ge 65 ]; 그 다음에 : 첫 번째 if 블록 안에는 'age' 값이 65보다 크거나 같은지 확인하는 또 다른 if 문이 있습니다.
    • $연령 : 'age' 변수의 값을 나타냅니다.
    • -ge : 수치 비교에서 크거나 같음을 나타냅니다.
    • 65 : 비교되는 값입니다.
  • echo 귀하는 또한 노인 혜택을 받을 자격이 있습니다. : if문 내부의 조건이 true이면 이 줄이 실행되어 노인복지혜택도 받으실 수 있습니다.가 출력됩니다. 터미널로.
  • 또 다른 : 내부 if 문의 조건이 false인 경우 스크립트는 외부 if 문의 else 블록으로 이동합니다.
    • echo 귀하는 아직 노인 혜택을 받을 자격이 없습니다. : 이 줄은 '연령' 값이 65 이상이면 실행되어 아직 노인 혜택을 받을 수 없습니다.라고 인쇄됩니다. 터미널로.
  • BE : 내부 if-else 블록의 끝을 나타냅니다.
  • 또 다른 : 외부 if 문의 조건이 false이면 스크립트는 else 블록으로 이동합니다.
    • echo 귀하는 아직 투표할 자격이 없습니다. : 이 줄은 'age' 값이 18 이상이면 실행되어 아직 투표할 수 없습니다.를 인쇄합니다. 터미널로.
  • BE : 이는 외부 if-else 블록의 끝을 나타냅니다.

산출:

중첩-Bash를 사용하는 경우

중첩-Bash를 사용하는 경우

CONDITION에 대한 FAQ 및 일부 참고사항

Bash에서 테스트 조건을 작성하는 동안 명심해야 할 몇 가지 사항은 다음과 같습니다.

글꼴 크기 라텍스

1. 대괄호와 실제 확인/비교 문 사이에 공백이 있는지 확인하세요.

예를 들어, 다음은 작동하지 않습니다.

if [$x==0]>

Bash는 다음에 대한 오류를 보고합니다. 없어진 ] .

2. then과 같은 새 키워드를 추가하기 전에 항상 줄을 끝내십시오.

그렇다면 else, elif 및 fi가 모두 쉘 키워드인 경우 이는 동일한 행에서 사용할 수 없음을 의미합니다. ; 이전 문과 키워드 사이에 넣거나 키워드로 새 줄을 시작하세요.

3. 하나의 명령문에 여러 조건을 사용하려면 논리 연산자를 사용하십시오.

여러 조건을 사용하려면 논리 AND(&&) 또는 논리 OR(||) 연산자를 사용할 수 있습니다.

예를 들어:

if [[ $x -ge $y ]] && [[ $x -ge $z ]]; then  echo 'x is greatest' fi>

여기서 -ge는 크거나 같음을 나타내는 약어입니다.

4. Bash if 문에서 문자열을 비교하는 방법은 무엇입니까?

`를 사용하세요. => `>문자열 동일성을 위한 연산자 및 ` !=`> 불평등을 위해.

예를 들어:

if [ '$string1' = '$string2' ]; then  # Code to execute if strings are equal else  # Code to execute if strings are not equal fi>

5. Bash if 문에서 정규식을 사용할 수 있나요?

예, `를 사용할 수 있습니다. [[ ... ]]`> 정규식과 일치하는 고급 문자열을 위한 구성입니다.

예를 들어:

if [[ '$string' =~ ^[0-9]+$ ]]; then  # Code to execute if the string contains only numbers else  # Code to execute if the string does not contain only numbers fi>

6. if 문을 사용하여 Bash 스크립트에 파일이 있는지 확인하는 방법은 무엇입니까?

`를 사용할 수 있습니다. -e`> 다음과 같이 조건에 플래그를 지정하세요.

if [ -e 'filename' ]; then  # Code to execute if the file exists else  # Code to execute if the file does not exist fi>

7. Bash 스크립팅의 if-else 문의 구문은 무엇입니까?

기본 구문 'if-else' Bash 스크립팅의 명령문은 다음과 같습니다.

if [ condition ]; then  # Code to execute if condition is true else  # Code to execute if condition is false fi>

8. Bash 스크립트에서 elif 문을 어떻게 사용합니까?

` elif`> 명령문은 초기에 추가 조건을 확인하는 데 사용됩니다.if>조건이 거짓입니다.

예는 다음과 같습니다.

if [ condition1 ]; then  # Code to execute if condition1 is true elif [ condition2 ]; then  # Code to execute if condition2 is true else  # Code to execute if none of the conditions are true fi>

9. Bash if 문에서 논리 연산자(AND, OR)를 어떻게 사용할 수 있나요?

`를 사용할 수 있습니다. -a`> 논리 AND 및 ` -o`> 논리적 OR의 경우.

예를 들어:

if [ condition1 -a condition2 ]; then  # Code to execute if both conditions are true fi>

결론

이 기사에서 우리는 컴퓨터가 자동으로 작업을 수행하도록 만드는 데 매우 유용한 도구인 Bash 스크립팅에 대해 논의했습니다. 이 기사에서는 스크립트의 의사결정자와 같은 Bash의 if 문에 대해 설명했습니다. 우리는 기본 사항을 배웠고, 숫자가 짝수인지 확인하거나 누군가 투표할 수 있는지 알아내는 것과 같은 예를 보았고, 심지어 여러 조건을 처리하거나 if 문을 서로 내부에 삽입하는 것과 같은 더 멋진 작업도 살펴보았습니다. 이 기사에서는 Bash 스크립트를 더 잘 사용할 수 있도록 명확한 설명과 예제를 제공하고 일반적인 질문에 대한 답변을 제공했습니다. 핵심은 간격이나 특수 규칙과 같은 세부 사항에 주의하여 스크립트가 원활하게 작동하고 컴퓨터에서 작업을 더 쉽게 처리할 수 있도록 한다는 것입니다.