스크립트에서의 사용자 입력
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 플래그는 프롬프트 텍스트를 인수로 사용하며, 그 뒤에 입력을 저장할 변수 이름을 지정합니다.
사용자 입력은 스크립트를 대화형으로 만들고 적응 가능하게 합니다. 값을 하드코딩하는 대신, 사용자가 실행할 때마다 제공하는 내용에 따라 다르게 작동하는 하나의 스크립트를 작성할 수 있습니다.
챌린지
쉬움greeter.sh라는 이름의 셸 스크립트를 생성하세요. 이 스크립트는 사용자에게 좋아하는 색상을 묻고 입력을 사용하여 메시지를 표시해야 합니다.
스크립트는 다음을 수행해야 합니다:
- 셰뱅 라인(
#!/bin/bash)으로 시작하세요 -p플래그와 함께read를 사용하여 다음으로 프롬프트하세요:What is your favorite color?- 입력을
color라는 변수에 저장하세요 echo를 사용하여 다음을 출력하세요:Nice! [color] is a great color!(여기서 [color]는 사용자 입력입니다)
스크립트를 실행 가능하게 만들고 실행하세요. 프롬프트가 나타나면 답변으로 blue를 입력하세요.
출력은 다음과 같아야 합니다:
What is your favorite color? blue
Nice! blue is a great color!힌트:
echo와 리디렉션을 사용하여 스크립트를 줄 단위로 작성하세요.read -p "What is your favorite color? " color를 사용하여 프롬프트하고 입력을 캡처한 후,echo "Nice! $color is a great color!"를 사용하여 결과를 표시하세요.
치트 시트
read 명령어는 스크립트를 일시 중지하고 사용자 입력을 기다린 후 이를 변수에 저장합니다:
#!/bin/bash
echo "What is your name?"
read name
echo "Hello, $name!"-p 플래그를 사용하면 프롬프트와 입력을 같은 줄에 표시할 수 있습니다:
#!/bin/bash
read -p "Enter your name: " name
echo "Hello, $name!"-p 플래그는 프롬프트 텍스트를 인수로 받아, 그 뒤에 입력을 저장할 변수 이름을 지정합니다.
직접 해보기
이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.