50% 할인 모든 계획, 제한된 시간. 시작 시간 $2.48/mo
10분 남음
서버 및 OS

Bash If 문: 구문, 변형, 사용 사례, 명령 등!

피우스 보덴만 By 피우스 보덴만 10분 읽기 2024년 1월 28일에 업데이트됨
배쉬 스크립팅

쉘 스크립팅에서 Bash if 문은 프로그래머가 다양한 상황에 따라 조건부 실행 경로를 생성할 수 있도록 하여 중요한 역할을 합니다. 기본적으로 if 문을 사용하면 테스트 결과, 사용자 입력 또는 시스템 상태와 같은 요소를 고려하여 Bash 스크립트 내에서 결정을 내릴 수 있습니다. 이는 다양한 가능성을 탐색하는 방법과 같습니다.

Bash 스크립팅을 사용할 때 if 문은 특정 구조를 따릅니다. 일반적으로 "if” 키워드 다음에 평가가 필요한 조건, “그 다음에” 키워드와 조건이 true인 경우 실행할 하나 이상의 명령입니다.

좀 더 유연하게 만들기 위해 if 문에는 선택 사항인 "엘리프"(else if) 문은 초기 조건이 false일 때 작동합니다. 이를 통해 추가 조건을 테스트하고 그에 따라 진행할 수 있습니다. 또한 if 문에는 조건 중 어느 것도 true가 아닌 경우 실행되는 선택적 "else" 문이 있을 수 있습니다.

if 문을 다른 Bash 명령 및 쉘 스크립팅 기능과 결합함으로써 프로그래머는 복잡한 작업과 프로세스를 자동화할 수 있는 고급 스크립트를 작성할 수 있습니다. 구문, 사용 사례 및 예제를 포함하여 Bash if 문에 대해 자세히 알아보세요!

Bash If 문 구문

Bash 구문은 Bash 쉘 언어로 작성된 명령 및 스크립트의 구조와 문법을 제어하는 ​​규칙을 나타냅니다. Bash 구문에는 다음과 같은 다양한 구문과 요소가 포함됩니다.

  • 명령: 특정 작업을 수행하는 데 사용되는 개별 실행 프로그램 또는 셸 내장입니다. 여러분은 Bash 프로그래밍을 다루는 데 대부분의 시간을 이 멋진 라인으로 보내게 될 것입니다.
  • 인수: 옵션, 매개변수 또는 입력 데이터를 지정하기 위해 명령에 전달되는 값입니다. 실행 매개변수를 지정하기 위해 명령에 대해 설정된 조건으로 생각하십시오.
  • 변수: 표현식에 할당, 조작 또는 사용할 수 있는 값을 나타내는 기호입니다. 명령과 인수가 모두 처리해야 하는 값을 결정하는 데 일반적으로 사용됩니다.
  • 리디렉션: 입력, 출력 또는 오류를 파일, 장치 또는 기타 명령으로 리디렉션하는 프로세스입니다. 이것이 없으면 명령이 잘못된 대상을 대상으로 하고 코드를 엉망으로 만들 가능성이 높습니다.
  • 파이프: 이는 한 명령의 출력을 다른 명령의 입력에 연결하는 메커니즘입니다. 이는 일반적으로 대규모 프로그램에서 고급 조건부 명령줄을 수행하고 서로 얽힌 명령줄을 만드는 데 사용됩니다.
  • 제어 구조: 루프, 조건부, 함수 등 명령 실행 흐름을 제어하는 ​​구문입니다. 제어 구조를 이해하는 것은 새로운 명령줄을 만드는 핵심이며 코드에 또 다른 깊이를 제공합니다.
  • 댓글: 이는 셸에서 무시되고 코드를 문서화하거나 설명을 제공하는 데 사용되는 주석입니다. 이는 특히 그룹 프로젝트에서 분석 및 디버깅을 수행할 때 중요한 참조 지점입니다.

쉘이 명령을 해석하고 실행하려면 Bash 구문을 올바르게 작성해야 합니다. 구문 오류로 인해 셸에서 오류 메시지나 예상치 못한 동작이 발생할 수 있습니다.

Bash if 문이 실제로 작동하는 모습은 다음과 같습니다.

if condition
then
   command1
   command2
   ...
   commandN
elif condition2
then
   commandA
   commandB
   ...
   commandC
else
   commandX
   commandY
   ...
   commandZ
fi

여기서의 경우 "조건"은 참 또는 거짓 결과를 생성하는 테스트를 나타냅니다. 조건이 true이면 "then" 키워드 뒤에 지정된 후속 명령이 실행됩니다. 이제 대신 추가 조건을 평가한다고 가정해 보겠습니다. 이를 위해 "elif" 키워드를 사용할 수 있습니다. 이는 또 다른 가능성을 고려하는 방법을 제공합니다. 이제 조건 중 어느 것도 true가 아닌 경우 "else" 키워드 뒤에 지정된 명령이 실행됩니다. 대체 계획과 같습니다. 마지막으로 if 문의 결론을 나타내기 위해 “if” 키워드를 사용합니다.

Bash 문은 어떻게 작동하나요?

Bash 스크립팅의 경우 if 문은 조건부 테스트 결과에 따라 스크립트 흐름을 안내하는 데 매우 유용합니다. 그 목적은 조건을 평가하고, 사실로 판명되면 특정 명령 세트를 실행하는 것입니다.

이제 Bash 스크립트 내에서 if 문이 작동할 때 일반적으로 상황이 어떻게 전개되는지 살펴보겠습니다. 스크립트는 if 문에 언급된 조건을 평가하는 데 잠시 시간이 걸립니다. 조건이 참인 것으로 판명되면 "then" 블록에 포함된 명령이 실행될 차례를 찾습니다.

그러나 조건이 거짓이 되면 스크립트는 계속해서 추가 elif 조건을 평가합니다. 이러한 조건 중 하나라도 충족되면 해당 elif 블록의 명령이 실행됩니다. if 및 elif 문에 지정된 조건 중 어느 것도 true가 아닌 경우 스크립트는 이를 승인하고 else 블록 내에 지정된 명령을 실행합니다(else 블록이 포함된 경우).

기본적으로 if 문은 스크립트 내에서 의사 결정을 용이하게 하는 수단으로 사용되어 테스트 결과에 따라 다양한 실행 경로를 통과할 수 있습니다. 테스트 자체에서는 명령 결과나 변수에 할당된 값과 같은 다양한 요소를 고려할 수 있습니다.

Bash If 문 예시

이제 기본 이론에서 벗어나 Bash if 문이 적극적인 코딩 개발에 어떻게 사용될 수 있는지 살펴보겠습니다. 다음은 Bash if 문이 작동하는 방식을 보여주는 예입니다.

#!/bin/bash
# set a variable
x=5
# evaluate the variable
if [ $x -gt 4 ]
then
  echo "x is greater than 4."
else
  echo "x is less than or equal to 4."
fi

이 예에서 if 문은 변수 x의 값을 평가합니다. x가 4보다 큰 경우 스크립트는 "x가 4보다 큼"을 인쇄하는 명령을 실행합니다. x가 4보다 작거나 같은 경우 스크립트는 "x가 4보다 작거나 같습니다"를 인쇄하는 명령을 실행합니다.

이제 기본 Bash If 문과 그 작동 방식을 확실하게 이해했으므로 변형 및 관련 명령에 대해 더 자세히 알아보고 기본 If 문, 중첩 If 문, Bash If Else, If Elif Else 및 Case 문에 대해 하나씩 자세히 알아보세요.

기본 If 문

기본적인 bash if 문부터 시작해 보겠습니다. Bash의 if 문은 조건이 true인지 확인하고 그에 따라 관련 코드 블록을 실행합니다. 구문은 다음과 같습니다.

if [ condition ]
then
  commands
fi

여기의 경우 스크립트는 조건을 평가하고 조건이 true이면 지정된 명령이 실행됩니다. 조건이 false이면 스크립트는 "then" 섹션 내의 블록을 실행하지 않고 다음 명령으로 이동합니다.

중첩된 If 문

중첩된 if 문은 광고 소재 이름에서 알 수 있듯이 다른 if 문 안에 '중첩'된 if 문입니다. 이 중첩 구조를 사용하면 스크립트 내에서 더 복잡한 테스트 및 분석이 가능합니다. 다음은 중첩된 if 문의 예입니다.

if [ condition1 ]
then
  if [ condition2 ]
  then
    commands
  fi
fi

스크립트가 첫 번째 단계로 조건1을 평가하는 명령을 볼 수 있습니다. 조건1이 참으로 확인되면 조건2를 평가합니다. 조건2도 true이면 스크립트는 필요한 명령을 실행합니다.

Bash If Else 문

Bash if else 문을 사용하면 조건이 참인지 거짓인지에 따라 스크립트 내에서 결정을 내릴 수 있으므로 상황에 따른 고급 코드 실행이 가능해집니다. 구조는 다음과 같습니다.

if [ condition ]
then
  commands1
else
  commands2
fi

이 구성은 조건이 유지되면 스크립트가 "commands1"을 신속하게 실행하도록 보장합니다. 그러나 조건이 거짓이면 "commands2"를 실행하도록 전환됩니다.

Elif Else 문인 경우

때로는 여러 조건과 해당 결과를 고려해야 합니다. if elif else 문을 사용하면 이를 정확하게 수행할 수 있습니다. 다음 구문을 관찰하세요.

if [ condition1 ]
then
  commands1
elif [ condition2 ]
then
  commands2
else
  commands3
fi

여기서 스크립트는 조건1을 먼저 평가합니다. 그것이 사실로 확인되면; 명령을 빠르게 실행합니다1. 그러나 조건1이 false인 경우 스크립트는 계속해서 조건2를 평가합니다. 조건2가 참이면 계속해서 명령2를 실행합니다. 조건1과 조건2가 모두 거짓으로 판명되면 스크립트는 명령3을 실행하는 대체 조건으로 이동합니다.

사례 진술

Bash에는 다른 프로그래밍 언어의 스위치 문과 유사한 기능을 하는 Case 문이 있습니다. 변수 값에 따라 다양한 명령 세트를 실행하는 방법을 제공합니다. 구조를 살펴보세요:

case expression in
  pattern1)
    commands1;;
  pattern2)
    commands2;;
  pattern3)
    commands3;;
*)
default commands;;
esac

여기서 스크립트는 표현식 변수를 평가하고 이를 다양한 패턴과 일치시킵니다. 일치하는 항목이 발견되면 해당 명령 세트가 실행됩니다. 그러나 일치하는 항목이 없으면 기본 명령이 정상적으로 실행됩니다. 별표(*) 패턴은 다루지 않은 모든 항목과 일치하는 와일드카드 역할을 합니다.

Bash 논리 연산자

Bash if 문 조작의 또 다른 주요 부분은 논리 연산자입니다. 이러한 연산자를 사용하면 여러 조건을 통합하여 이러한 결합된 조건의 진실 또는 거짓을 기반으로 결정을 내릴 수 있습니다. Bash는 if 문에서 활용하기 위해 세 가지 기본 논리 연산자를 통합합니다. 다음은 논리 연산자 명령의 세 가지 주요 유형에 대한 예입니다.

  • 배쉬 AND(&&):
if [ $age -ge 18 ] && [ "$citizen" == "yes" ]; then
  echo "You meet the criteria for voting."
fi
  • 논리적 또는 (II):
if [ "$status" == "active" ] || [ "$role" == "admin" ]; then
  echo "Access granted."
fi
  • 같지 않음:
if(( ! $a == "true" )) then 
  echo "a" was initially false. 
else
  echo "a" was initially true. 
fi

결론

이 블로그 게시물에서는 Bash if 문에 대한 소개 가이드와 이를 사용하는 방법을 제공했습니다. 또한 코드를 더욱 깔끔하고 기능적으로 만드는 방법에 대해서도 논의했습니다. 이러한 조건문을 효과적으로 사용하면 복잡한 작업과 의사 결정을 처리할 수 있는 강력한 스크립트를 만들 수 있습니다.

Linux의 세계가 처음이신가요? 이 흥미진진한 여정에 우리가 당신의 길잡이가 되어 드리겠습니다! 우리의 리눅스 VPS 파워를 희생하지 않고 단순함을 제공하는 초보자를 위한 완벽한 출발점입니다. 사용자 친화적인 인터페이스와 전문가 지원을 통해 Linux 서버의 기능을 그 어느 때보다 쉽게 ​​활용할 수 있습니다. 웹사이트를 설정하든, 애플리케이션을 테스트하든, 광대한 Linux 세계를 탐험하든, Linux VPS는 안전하고 번거롭지 않은 환경을 제공합니다. 자신 있게 Linux 세계로 첫 발을 내딛으세요. 지금 Linux VPS 옵션을 확인하고 Linux 모험을 시작하세요!

리눅스 VPS 호스팅

가장 저렴한 가격으로 웹 사이트 또는 원격 데스크톱 호스팅을 위한 경제형 또는 프리미엄 Linux VPS를 구입하세요. Linux KVM에서 실행되는 VPS는 효율성을 높이고 속도를 높이기 위해 NVMe SSD 스토리지를 갖춘 강력한 하드웨어에서 작동합니다.

자세히 알아보기

FAQ

Bash if 문에서 논리 연산자를 사용할 수 있나요?

예, 다음과 같은 논리 연산자를 사용할 수 있습니다. '&' 그리고 '||' Bash if 문에서. 예를 들어, if [ $var -gt 0 ] && [ $var -lt 10 ]; 그 다음에 … 다음과 같은 경우 코드 블록을 실행합니다. $var 0보다 크고 10보다 작습니다.

단일 if 문에서 여러 조건을 사용할 수 있나요?

예, 다음과 같은 논리 연산자를 사용하여 단일 if 문에서 여러 조건을 Bash로 사용할 수 있습니다. -a (그리고) 또는 -o (OR)을 결합합니다. 예를 들어, if [ $var -gt 0 -a $var -lt 10 ]; 그 다음에 … 다음과 같은 경우 코드 블록을 실행합니다. $var 0보다 크고 10보다 작습니다.

Bash if 문에서 명령 대체를 사용할 수 있나요?

예, 명령을 다음으로 묶어서 Bash if 문에서 명령 대체를 사용할 수 있습니다. $() 또는 백틱(). 예를 들어, if [ $(whoami) == “루트” ]; 그 다음에 … 현재 사용자가 루트인 경우 코드 블록을 실행합니다.

[[ vs [ vs ( vs ((: 이 Bash 연산자의 차이점은 무엇입니까?

즉, [[ 고급 조건부 테스트에 사용됩니다. [ 기본 조건부 테스트에 사용됩니다. ( 서브쉘 그룹화 및 명령 실행에 사용됩니다. (( 산술 연산에 사용됩니다.

 

공유하다

블로그에서 더 보기

계속 읽어보세요.

Cosmos Cloud로 실행할 수 있는 최고의 자체 호스팅 앱 Cosmos 대시보드 주변에 앱 패널이 있는 표지 이미지입니다.
서버 및 OS

Cosmos Cloud로 실행할 수 있는 최고의 셀프 호스팅 앱: 파일, 미디어, 비밀번호, 자동화 등!

어쩌면 Cosmos Cloud를 설정했는데 이제 어떤 앱이 이에 잘 어울리는지 확인하고 싶을 수도 있고, 아직 Cosmos를 결정하지도 않았는데 업무 환경에 얼마나 잘 맞는지 확인하고 싶을 수도 있습니다.

닉 실버닉 실버 16분 읽기
Docker 앱 관리를 위한 Portainer 및 Cosmos Cloud는 하이브리드 설정 다이어그램과 네온 옵스 및 액세스 블록을 다룹니다.
서버 및 OS

Portainer vs Cosmos Cloud: Docker 앱 관리에 가장 적합

이미 Docker를 알고 있고 점점 늘어나는 앱 스택을 더 깔끔하게 실행하는 방법을 원한다면 Portainer와 Cosmos Cloud에 대한 짧은 답변을 참조하세요. Portainer는 다이렉트에 대한 더 강력한 선택입니다.

닉 실버닉 실버 14분 읽기
하나의 추상 클라우드 네트워크 세계 내에서 세 가지 자체 호스팅 경로를 보여주는 Cosmos Cloud, CasaOS, Umbrel 기능 그래픽입니다.
서버 및 OS

Cosmos Cloud vs CasaOS vs Umbrel: 귀하의 설정에 적합한 자체 호스팅 플랫폼은 무엇입니까?

짧은 대답은 CasaOS가 여전히 시작하기 가장 쉬운 곳이고, Umbrel이 가장 깔끔하게 선별된 느낌을 갖고 있으며, 도메인에 대한 더 엄격한 제어를 원할 경우 Cosmos Cloud가 더 적합하다는 것입니다.

닉 실버닉 실버 11분 읽기

배포할 준비가 되셨나요? 월 $2.48부터

2008년부터 독립 클라우드. AMD EPYC, NVMe, 40Gbps. 14일 환불.