Bash의 사용자 입력
사용자 입력을 받는 것은 모든 프로그램이나 스크립트에서 매우 중요합니다. 이러한 방식으로 사용자는 시스템과 상호 작용하고 시스템에 입력을 제공합니다.
다른 프로그래밍 또는 스크립팅 언어와 마찬가지로 Bash는 사용자 입력을 지원합니다. 사용자 입력을 받는 일반적인 형식은 read YOUR_VARIABLE
입니다.
사용자에게 어떤 종류의 입력이 필요한지 알려주는 태그를 생성하려는 경우 형식은 read -p "YOUR INSTRUCTION HERE : "YOUR_VARIABLE
과 같습니다. 이 기사에서는 Bash에서 시스템에 사용자 입력을 받는 방법을 살펴보겠습니다.
또한, 주제와 관련된 몇 가지 예와 설명을 통해 주제를 보다 쉽게 이해할 수 있습니다.
Bash의 사용자 입력
이미 논의한 바와 같이 키워드 read
를 사용하여 시스템에 사용자 입력을 가져와야 합니다. 사용자 입력을 읽는 Bash의 기본 제공 키워드입니다.
아래 예에서는 사용자 입력을 받아 사용자 입력을 포함한 출력을 사용자에게 제공합니다. 이 예제의 코드는 다음과 같습니다.
read YOUR_VAR
echo "You entered the number $YOUR_VAR"
위에서 입력을 받고 아래와 같은 출력을 제공하는 매우 간단한 예를 공유했습니다.
50
You entered the number 50
그러나 사용자가 여기에 숫자 값을 제공해야 한다는 것을 어떻게 알 수 있습니까? 여기에 숫자 값을 제공해야 한다고 사용자에게 알려야 합니다.
이렇게 하려면 이전 예제와 유사하지만 고급인 아래 예제를 따라야 합니다. 우리 예제의 코드는 아래와 같을 것입니다.
read -p "Please enter a number: " YOUR_VAR
echo "You entered the number $YOUR_VAR"
이 예제를 실행하면 스크립트는 먼저 Please enter a number:
라는 메시지를 표시하고 사용자가 숫자 값을 제공하면 아래 출력을 얻게 됩니다.
Please enter a number: 50
You entered the number 50
사용자로부터 YES
또는 NO
입력 받기
아래에서 YES
또는 NO
사이의 사용자 입력만 취하는 예를 볼 수 있습니다. 이 예제의 코드는 다음과 같습니다.
while true; do
read -p "Do you wish to continue? " yn
case $yn in
[Yy]* ) echo "You have selected YES!! ";;
[Nn]* ) echo "You have selected NO!! ";;
* ) echo "Please answer between YES or NO";;
esac
done
이 예제에서는 while
루프와 조건문 case
를 사용했습니다. read -p "Do you wish to continue? " yn
행을 통해 사용자 입력을 받습니다.
[Yy]* ) echo "You have selected YES!! ";;
및 [Nn]* ) echo "You have selected NO!! ";;
우리는 사용자 입력을 확인합니다.
입력이 Y
또는 y
이면 You have selected YES
가 표시되고 입력이 N
또는 n
이면 You have selected NO
가 표시됩니다.
마지막으로 사용자가 * ) echo "Please answer YES or NO";;
라인에 예기치 않은 입력을 입력하면 기본 출력을 설정합니다. 코드를 실행하면 다음과 같은 출력이 표시됩니다.
Do you wish to continue the program? Y
You have selected YES!!
Do you wish to continue the program? Y
You have selected YES!!
Do you wish to continue the program? N
You have selected NO!!
이 기사에 사용된 모든 코드는 Bash로 작성되었습니다. Linux Shell 환경에서만 작동합니다.
Aminul Is an Expert Technical Writer and Full-Stack Developer. He has hands-on working experience on numerous Developer Platforms and SAAS startups. He is highly skilled in numerous Programming languages and Frameworks. He can write professional technical articles like Reviews, Programming, Documentation, SOP, User manual, Whitepaper, etc.
LinkedIn