hyperskill - Conditional statements and test checks 영어 원문
Bash 는 대부분의 프로그래밍 언어들과 비슷하게, 프로그램의 실행 흐름을 조종하기 위한 조건문을 담고 있습니다.
프로그램에서는 아주 자주, 조건이 참이면, 또 다른 블록은 거짓이므로,
한 블록의 코드를 실행 할 필요가 있습니다.
예를 들어, 만약 유저에 의해 비밀번호가 통과되었다면,
유저는 그 다음 페이지를 가질 수 있어야 합니다.
그리고 만약 비밀번호가 올바르지 않다면, 에러 메세지가 나타나야 합니다.
이러한 유형의 컨트롤 흐름은 조건문을 사용하여 저장 될 수 있으며,
우리가 이번 주제에서 탐색하게 될 것 입니다.
Basic if-statement - 기본적인 if 문법
당신이 마주칠 대부분의 공통적인 조건문은 if 문법입니다.
if statement 는 몇 가지 조건을 만난다면 코드의 블록이 실행되고,
조건이 만나지 않는다면 해당 코드 블록을 스킵 할 수 있게 해 줍니다.
기본적인 if 문법 의 구문은 이와 비슷합니다 :
if [conditions]; then
commands
fi
이러한 조건들은 실제로 실행되고 상태를 반환하는 명령어들을 테스트합니다.
만약 테스트의 반환 상태가 0 이라면 성공 이며,
if 블록 의 내부 명령어가 실행되었는데 만약 상태가 0 이 아니라면 실패이며, 명령어들이 스킵됩니다.
위 구문에 있는, 조건 테스트 이후에 있는 세미콜론(;
) 을 참고하세요.
세미콜론(;
) 은 반드시 이곳에 와야 하는데,
이는 우리가 두 개의 서로 다른 문법을 작성하기 때문입니다.
그리고 if 문법과 then 문법이 동일한 줄에 있기 때문입니다. (서로 다른 문법)
Test command and its options - 명령어 테스트와 옵션들
test command (명령어 테스트) 는 다양한 확인/비교 를 수행하기 위해 사용됩니다.
이는 두 개의 서로 다르지만 동등한 구문을 가지고 있으며,
두 번째 구문이 훨씬 더 유명합니다.
test expression
or
[ expressions ]
여기서
test command
란, expression 결과를 의미한다고 보면 된다.
테스트 명령은 표현식 이 true 일 때 값 0 을 반환하고,
표현식 이 false 일 때 값 1 을 반환한다.
test
표현식과 가끔 공통적으로 사용되는 옵션들은 밑에 주어집니다.
당신은 이러한 옵션들의 완벽한 리스트를 Linux man-page 에서 찾을 수 있습니다.
Test command options | 사용목적 | 구문 |
---|---|---|
Option | Purpose | Syntax |
-eq |
두 개의 int 가 동등하다면 True | if [ INT1 -eq INT2 ] |
-ne |
두 개의 int 가 다르다면 True | if [ INT1 -ne INT2 ] |
-gt |
만약 첫 번째 int 가 두 번째 보다 크다면 True | if [ INT1 -gt INT2 ] |
-ge |
만약 첫 번째 int 가 두 번째 보다 크거나 똑같다면 True | if [ INT1 -ge INT2 ] |
-lt |
만약 첫 번째 int 가 두 번째 보다 작다면 True | if [ INT1 -lt INT2 ] |
-le |
만약 첫 번째 int 가 두 번째 보다 작거나 똑같다면 True | if [ INT1 -le INT2 ] |
= |
만약 두 문자열이 동일하다면 True | if [ STRING1 = STRING2 ] |
!= |
만약 두 문자열이 동일하지 않다면 True | if [ STRING1 != STRING2 ] |
\> |
만약 첫 번째 문자열이 두 번째보다 크다면 True | if [ STRING1 \> STRING2 ] |
-z |
만약 문자열이 null 이라면 True |
if [ -z STRING ] |
-n |
만약 문자열이 null 이 아니라면 True |
if [ -n STRING ] |
-e |
만약 파일이 존재한다면 True | if [ -e FILE ] |
-d |
만약 파일이 디렉토리라면 True | if [ -d FILE ] |
-s |
만약 파일이 비어있지 않다면 True (파일의 크기가 0 이 아님) | if [ -s FILE ] |
그리고 이와 같은 논리 연산자들이 테스트 명령어에 사용 될 수 있습니다 :
Logical Operators | 사용 목적 | 구문 |
---|---|---|
Option | Purpose | Syntax |
! |
논리적 NOT | if [ ! EXPR ] |
-a |
논리적 AND | if [ EXPR1 -a EXPR2 ] |
-o |
논리적 OR | if [ EXPR1 -o EXPR2 ] |
Bash Test Commands 이곳에서 다양한 테스트 명령어 옵션들을 볼 수 있습니다.
기본적인 if 문법 내부에서 실제로 테스트 명령어가 활용되는 사례를 살펴 봅시다 :
# 유저에 의해 입력되는 패스워드 확인
echo "Enter password: "
read input
if [ $input = "Pass!@#" ]; then
echo "Correct password entered"
fi
The else block - else 코드 블록
위의 비밀번호 확인 예제에서,
만약 유저가 올바른 비밀번호를 입력했다면, 그들은 메세지를 받지만,
유저가 알맞지 않은 비밀번호를 입력했다면, 그들은 피드백을 받지 못합니다.
이는 유저에게 혼동을 줄 수 있습니다.
따라서 우리는 if 문법에서 false 로 판명났을 때 실행되는 코드를 포함하는 방법은 무엇일까요?
그건 else 블록을 사용하면 됩니다!
이전의 경우에서 false 의 조건일 때 실행하고 싶은 모든 코드는 else
블록에 넣을 수 있습니다.
따라서 우리의 비밀번호 확인 코드는 이와 비슷합니다 :
if [ $input = "Pass!@#" ]; then
echo "Correct password entered"
else
echo "Incorrect password entered"
fi
The elif block - elif 블록
아주 자주, 당신은 두 가지 선택지만 있지는 않은 분기점이 있는 상황을 맞닦뜨릴 겁니다.
예를 들어, 2 개의 숫자를 비교하는 동안, 우리에게 3 가지 선택지를 가질 수 있습니다 :
- 숫자가 동일하다
- 첫 번째 숫자가 더 크다
- 두 번째 숫자가 더 크다
이러한 상황에서, elif
구조가 우리를 구조할 겁니다 :
num1=20;
num2=10;
if [ "$num1" -eq "$num2" ]; then
echo "Numbers are equal"
elif [ "$num1" -gt "$num2" ] then
echo "First number is greater"
else
echo "Second number is greater"
fi
if-elif-else
계단의 완벽의 구문은 이렇습니다 :
if test-commands; then
consequent-commands
elif more-test-commands; then
more-consequents
else
some-more-consequents
fi
위의 구문에서 elif
그리고 else
블록은 선택적입니다.
Conclusion - 결론
이번 주제에서는, Bash 에서, 조건문법 어떻게 작동하는지 탐색했습니다.
if
, if-else
, if-elif-else
구문 블록을 통해 배웠습니다.
또한 우리는 test
명령어를 배웠으며, 이와 사용할 수 있는 다양한 옵션들을 배우 ㅓㅆ습니다.
words to remember
encounter : 맞닥뜨리다, 교전, 마주침, 만나다, 당하다, 부닥치다
equivalent : 동등한, 같은, 상당하는, 동적, 대가
'Hyperskill - 컴퓨터 CS 및 영어 독해 > Introduction to Docker' 카테고리의 다른 글
Globbing - 글로빙 (0) | 2024.08.21 |
---|---|
Loops and sequences - Bash 반복문 (0) | 2024.08.20 |
Archiving and extracting data - 데이터 보관 및 추출 (0) | 2024.08.15 |
MongoDB vs Relational databases - NoSQL vs RDBMS 비교 (0) | 2024.08.15 |
Best practices for bash scripts - bash 스크립트를 연습하는 최고의 방법 (1) | 2024.08.13 |