Menu
Coddy logo textTech

스크립트에서의 사용자 입력

Coddy Terminal 여정의 기초 섹션에 포함된 레슨 — 82개 중 69번째.

변수는 유용하지만, 때로는 스크립트가 실행되는 동안 사용자에게 정보를 요청하고 싶을 때가 있습니다. read 명령어는 스크립트를 일시 중지하고 사용자가 무언가를 입력할 때까지 기다린 다음, 그 입력을 변수에 저장합니다.

작동 방식은 다음과 같습니다:

#!/bin/bash
echo "What is your name?"
read name
echo "Hello, $name!"

이 스크립트가 실행되면 질문을 출력하고 사용자가 이름을 입력하고 Enter 키를 누를 때까지 기다린 다음 인사를 건넵니다. read 명령은 사용자가 입력하는 모든 내용을 가져와 name 변수에 저장합니다.

-p 플래그를 사용하면 프롬프트 메시지와 입력을 같은 줄에 결합하여 프롬프트를 한결 깔끔하게 만들 수 있습니다:

#!/bin/bash
read -p "Enter your name: " name
echo "Hello, $name!"

이것은 Enter your name: 을 출력하고 동일한 줄에서 입력을 기다리므로 더 깔끔해 보입니다. -p 플래그는 프롬프트 텍스트를 인수로 받고, 그 뒤에 입력을 저장할 변수 이름이 옵니다.

사용자 입력을 활용하면 스크립트를 대화형으로 만들고 유연하게 확장할 수 있습니다. 값을 하드코딩하는 대신, 사용자가 실행할 때마다 입력하는 내용에 따라 다르게 동작하는 단 하나의 스크립트를 작성할 수 있습니다.

challenge icon

챌린지

쉬움

사용자에게 좋아하는 색상을 묻고 입력받은 값을 사용하여 메시지를 출력하는 greeter.sh라는 셸 스크립트를 작성하세요.

스크립트는 다음 조건을 만족해야 합니다:

  1. 쉬뱅(shebang) 라인(#!/bin/bash)으로 시작합니다.
  2. read-p 플래그를 사용하여 프롬프트 메시지를 출력합니다: What is your favorite color?
  3. 입력받은 값을 color라는 변수에 저장합니다.
  4. echo를 사용하여 다음과 같이 출력합니다: Nice! [color] is a great color! (여기서 [color]는 사용자가 입력한 값입니다)

스크립트에 실행 권한을 부여한 후 blue를 입력값으로 지정하여 실행하세요. 이 터미널은 대화형이 아니므로 사용자의 입력을 기다릴 수 없습니다. 따라서 파이프를 통해 입력값을 스크립트로 전달해야 합니다:

echo "blue" | ./greeter.sh

출력 결과는 다음과 같아야 합니다:

Nice! blue is a great color!

참고: What is your favorite color? 프롬프트는 여기에 표시되지 않습니다. read -p는 입력이 키보드로부터 들어올 때만 프롬프트를 출력하며, 여기서는 파이프를 통해 입력이 전달되기 때문입니다.

힌트: 리다이렉션과 함께 echo를 사용하여 스크립트를 한 줄씩 작성하세요. read -p "What is your favorite color? " color를 사용하여 프롬프트를 띄우고 입력을 받은 다음, echo "Nice! $color is a great color!"를 사용하여 결과를 출력하세요.

직접 해보기

터미널
quiz icon실력 점검

이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.

기초의 모든 레슨