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

숫자가 짝수인지 확인하는 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를 사용하여 더 큰 수 찾기
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인 경우
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를 사용하는 경우
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 스크립트를 더 잘 사용할 수 있도록 명확한 설명과 예제를 제공하고 일반적인 질문에 대한 답변을 제공했습니다. 핵심은 간격이나 특수 규칙과 같은 세부 사항에 주의하여 스크립트가 원활하게 작동하고 컴퓨터에서 작업을 더 쉽게 처리할 수 있도록 한다는 것입니다.