Linux의 Bash script에서 사용자로부터 입력 받는 방법을 소개합니다.
1. read로 사용자 입력 받기
다음과 같이 사용자로부터 입력을 받고, 변수 name
에 저장할 수 있습니다. 입력을 안내하는 메시지가 출력되고, 그 다음 줄에서 사용자 입력을 받을 수 있습니다.
#!/bin/bash
echo "Enter the user name: "
read name
echo "name: $name"
Output:
$ bash example.sh
Enter the user name:
Jisung
name: Jisung
2. 두개 이상의 사용자 입력 받기
위의 예제는 사용자로부터 1개의 입력을 받았습니다. 두개 이상의 입력을 받을 때는, read
에 두개 이상의 변수들을 쓰시면 됩니다. 사용자가 입력하는 데이터가 순차적으로 변수에 저장됩니다.
#!/bin/bash
echo "Enter the user name and email: "
read name email
echo "name: $name, email: $email"
Output:
$ bash example.sh
Enter the user name and email:
Jisung js@codechacha.com
name: Jisung, email: js@codechacha.com
3. 메시지와 같은 라인에서 입력 받기
안내 메시지와 동일한 라인에서 사용자 입력으려면 read
의 -p
옵션을 이용하시면 됩니다.
read -p "MESSAGE" VARIABLE
형식으로 구현하면, 메시지를 보여주고 사용자로부터 입력을 받을 수 있습니다.
#!/bin/bash
read -p "Enter the name: " name
echo "name is $name"
Output:
$ bash example.sh
Enter the name: Jisung
name is Jisung
4. 터미널에서 사용자 입력 숨기기
사용자로부터 입력을 받을 때 패스워드처럼 화면에 띄우지 말아야하는 정보들이 있습니다. -s
옵션을 추가하면 사용자 입력이 화면에서 보이지 않습니다.
#!/bin/bash
read -p "id : " id
read -sp "pw : " pw
echo
echo "name is $id"
echo "pw is $pw"
Output:
$ bash example.sh
id : js
pw :
name is js
pw is 1234
5. 가변적으로 사용자 입력 받기
-a
옵션은 사용자 입력을 배열로 받습니다. 사용자가 3개를 입력하면, 배열의 크기는 3이되고 2개를 입력하면 배열의 크기는 2가 됩니다. ${#names[*]}
는 배열의 길이를 의미합니다.
#!/bin/bash
echo "Enter names"
read -a names
echo "Input size: ${#names[*]}"
echo "first: ${names[0]}, second: ${names[1]}, third: ${names[2]}"
Output:
$ bash example.sh
Enter names
AA BB CC
Input size: 3
first: AA, second: BB, third: CC
5.1 반복문으로 가변 입력 출력
가변적으로 받은 사용자 입력을 for loop를 이용하여 처리할 수 있습니다. ${names[*]}
는 배열의 모든 데이터를 의미하며, 반복문으로 모든 데이터를 순회할 수 있습니다.
#!/bin/bash
echo "Enter names"
read -a names
echo "Input size: ${#names[*]}"
for name in "${names[*]}"
do
echo "name: $name"
echo
done
Output:
$ bash example.sh
Enter names
AA BB CC
Input size: 3
name: AA BB CC
Loading script...
Related Posts
- Bash Shell - 문자열에서 마지막 문자 N개 제거
- Bash Shell - 문자열에서 첫번째 문자 N개 제거
- Bash Shell - 실행 시간 측정 방법
- Bash Shell - 나눗셈에서 버림, 올림, 반올림 처리
- Bash Shell - 숫자가 양수인지 음수인지 확인하는 방법
- Bash Shell - 자신의 스크립트 파일 이름 가져오기
- Bash Shell - 문자열 출력 방법(echo, printf)
- Bash Shell - seq 명령어로 반복문 구현 및 예제
- Bash Shell - File 테스트 연산자
- Bash Shell - 무한 루프 (Infinite loop)
- Bash Shell - 숫자 비교 연산자
- Bash Shell - 문자열 비교 연산자
- Bash Shell - 대문자, 소문자로 변환 (Uppercase, Lowercase)
- Bash Shell - 스트립트를 root로 실행했는지 확인
- Bash Shell - 명령어 실행 결과를 변수에 저장
- Bash Shell - select로 선택 메뉴 구현
- Bash Shell - 변수가 정의되었는지 확인하는 방법
- Bash Shell - sleep 함수, 특정 시간 멈추기
- Bash Shell - 파일이 존재하는지 확인
- Bash Shell - 문자열 자르기 (substring, split)
- Bash Shell - 날짜, 시간 가져오기
- Bash Shell - Case 조건문
- Bash Shell - 파일 읽는 방법
- Bash Shell - 사용자로부터 입력 받기
- Bash Shell - 문자열을 연결하는 방법
- Bash Shell - 파일 생성 및 문자열 추가
- Bash Shell - 숫자 변수 증가/감소 시키기
- Bash Shell - 배열 할당, 길이, 객체 포함 여부 확인
- Bash Shell - 문자열 비교, 문자열 포함 여부 확인
- Bash Shell - 변수 선언, 할당
- Bash Shell - 조건문(if-else)
- Bash Shell - 숫자 연산 (더하기, 빼기, 곱하기, 나누기)
- Bash Shell - 반복문(for, while, until loop)
- Bash Shell - Command Line으로 전달된 인자 받기
- Bash Shell - 함수(Function)