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

대화형 게임을 작성하여 Bash 배우기

새로운 프로그래밍 언어를 배우는 것은 재미있을 수 있습니다. 새로운 것을 배우려고 할 때마다 저는 변수 정의, 진술 작성, 표현 평가에 집중합니다. 일단 이러한 개념에 대한 일반적인 이해가 있으면 나머지는 대개 스스로 이해할 수 있습니다. 대부분의 프로그래밍 언어에는 몇 가지 유사점이 있으므로 한 프로그래밍 언어를 알고 나면 다음 언어를 배우는 것은 고유한 세부 사항을 파악하고 차이점을 인식하는 문제입니다.

새로운 프로그래밍 언어를 연습하는 데 도움이 되도록 몇 가지 테스트 프로그램을 작성하는 것을 좋아합니다. 내가 자주 작성하는 샘플 프로그램 중 하나는 컴퓨터가 1에서 100 사이의 숫자를 선택하고 숫자를 추측하도록 요청하는 간단한 "숫자 추측" 프로그램입니다. 프로그램은 내가 정확하게 추측할 때까지 반복됩니다.

"숫자 추측" 프로그램은 프로그래밍 언어에서 변수에 값을 할당하는 방법, 명령문을 작성하는 방법, 조건부 평가 및 루프를 수행하는 방법과 같은 여러 개념을 연습합니다. 새로운 프로그래밍 언어를 배울 수 있는 훌륭한 실용적인 실험입니다.

Bash에서 숫자 맞추기

Bash는 대부분의 Linux 시스템의 표준 셸입니다. 풍부한 명령줄 사용자 인터페이스를 제공하는 것 외에도 Bash는 스크립트 형태의 완전한 프로그래밍 언어도 지원합니다. .

Bash에 익숙하지 않다면 다음 소개를 추천합니다.

  • 배쉬란 무엇입니까?
  • Bash 프로그래밍 시작하기
  • 시스템 관리자를 위한 Bash 스크립팅 시작하기
  • Bash에서 함수를 작성하는 방법
  • Bash에 대해 자세히 알아보기

"숫자 맞추기" 게임 버전을 작성하여 Bash를 탐색할 수 있습니다. 내 구현은 다음과 같습니다.

#!/bin/bash

number=$(( $RANDOM % 100 + 1 ))

echo "Guess a number between 1 and 100"

guess=0

while [ "0$guess" -ne $number ] ; do
        read guess
        [ "0$guess" -lt $number ] && echo "Too low"
        [ "0$guess" -gt $number ] && echo "Too high"
done

echo "That's right!"
exit 0

스크립트 분석

스크립트의 첫 번째 줄, #!/bin/bash Bash 쉘을 사용하여 이 스크립트를 실행하도록 Linux에 지시합니다. 모든 스크립트는 #!로 시작합니다. 쉘 스크립트임을 나타내는 문자 쌍. #! 바로 다음에 오는 것 실행할 쉘입니다. 이 경우 /bin/bash Bash 셸입니다.

변수에 값을 할당하려면 변수 이름 뒤에 = 징후. 예를 들어 guess=0 문은 guess에 0 값을 할당합니다. 변수.

read를 사용하여 사용자에게 값을 입력하라는 메시지를 표시할 수도 있습니다. 성명. read guess을 작성하는 경우 , Bash는 사용자가 텍스트를 입력할 때까지 기다린 다음 해당 값을 guess에 저장합니다. 변수.

변수 값을 참조하려면 $를 사용하십시오. 변수 이름 앞에 따라서 guess에 값을 저장하면 변수, $guess를 사용하여 검색할 수 있습니다. .

변수에 대해 원하는 이름을 사용할 수 있지만 Bash는 자체적으로 몇 가지 특수 변수 이름을 예약합니다. 하나의 특수 변수는 RANDOM입니다. , 참조할 때마다 매우 큰 난수를 생성합니다.

값을 저장함과 동시에 연산을 수행하려면 명령문을 특수 괄호로 묶어야 합니다. 이것은 Bash에게 해당 명령문을 먼저 실행하도록 지시하고 = 결과 값을 변수에 저장합니다. 수학 표현식을 평가하려면 $(( ))를 사용하십시오. 당신의 진술 주위에. 이중 괄호는 산술 표현식을 나타냅니다. . 내 예에서는 number=$(( $RANDOM % 100 + 1 )) $RANDOM % 100 + 1 표현식을 평가합니다. 그런 다음 number에 값을 저장합니다. 변수.

+와 같은 표준 산술 연산자 (더하기), - (빼기), * (곱하기), / (나누기) 및 % (모듈로) 적용합니다.

즉, number=$(( $RANDOM % 100 + 1 )) 1에서 100 사이의 난수를 생성합니다. 모듈로 연산자(% ) 나머지를 반환합니다. 두 숫자를 나눈 후. 이 경우 Bash는 난수를 100으로 나누고 나머지는 0에서 99 사이의 범위에 남습니다. 이 값에 1을 더하면 1에서 100 사이의 난수가 나옵니다.

Bash는 조건식을 지원합니다. 및 흐름 제어 루프처럼. "숫자 추측" 게임에서 Bash는 guess의 값만큼 계속 반복됩니다. number와 같지 않음 . 추측값이 난수보다 작으면 Bash는 "Too low"를 인쇄하고 추측값이 숫자보다 크면 Bash는 "Too high"를 인쇄합니다.

작동 방식

이제 Bash 스크립트를 작성했으므로 이를 실행하여 "숫자 맞추기" 게임을 할 수 있습니다. 올바른 숫자를 찾을 때까지 계속 추측:

Guess a number between 1 and 100
50
Too high
30
Too high
20
Too high
10
Too low
15
Too high
13
Too low
14
That's right!

스크립트를 실행할 때마다 Bash는 다른 임의의 숫자를 선택합니다.

이 "숫자 맞추기" 게임은 몇 가지 일반적인 프로그래밍 개념을 매우 간단한 방법으로 연습하기 때문에 새로운 프로그래밍 언어를 배울 때 훌륭한 입문 프로그램입니다. 이 간단한 게임을 다양한 프로그래밍 언어로 구현하여 몇 가지 핵심 개념을 시연하고 각 언어의 세부 사항을 비교할 수 있습니다.

좋아하는 프로그래밍 언어가 있습니까? "숫자 맞추기" 게임을 어떻게 작성하시겠습니까? 이 기사 시리즈를 따라 관심을 가질 만한 다른 프로그래밍 언어의 예를 확인하세요.