본문 바로가기

Linux

[bash] 쉘 스크립트로 사용자 입력 받기 (read 명령어 사용법)

반응형

지난 글에서는 쉘스크립트로 출력하는 방법에 대해서 다뤄보았다.

그렇다면  사용자 입력은 어떻게 받을까?

이번 글에서는 bash 쉘 스크립트에서 사용자 입력을 받는 방법에 대해서 살펴보자.

 

 

read

사용자로부터 입력을 받기 위해서는 read 명령어를 사용해서 입력받을 수 있다. 

예제를 통해서 read 명령어를 통해서 사용자 입력을 받는 방법에 대해서 살펴보자.

 

 

사용자 입력을 받아서 출력

1
2
3
4
5
6
7
8
9
10
11
#!/bin/bash
 
echo "나이를 입력하세요"
read age
echo "당신의 나이는 $age 입니다."
 
 
## 출력
나이를 입력하세요
31
당신의 나이는 31 입니다.
cs

 

read로 사용자 입력을 받아서  age 변수에 저장한 후 이를 echo로 출력해주는 예제이다.

위 예제에서는 입력을 하나만 받았지만, 띄어쓰기 단위로 여러개의 입력을 받을 수도 있다.

 

 

1
2
3
4
5
6
7
8
9
10
11
12
13
#!/bin/bash
 
echo "당신의 나이와 키를  입력하세요"
read age height
echo "당신의 나이는 $age 키는 $height 입니다."
 
 
 
## 출력
당신의 나이와 키를  입력하세요
31  181
당신의 나이는 31 키는 181 입니다.
 
cs

 

 

배열로 입력받기

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#!/bin/bash
 
echo "생각나는 단어 여러개를 입력해보세요"
read -a words
for word in ${words[@]}; do
  echo "${word}"
done
 
 
 
## 출력
"생각나는 단어 여러개를 입력해보세요"
robot tesla gazua shell
robot
tesla
gazua
shell
 
cs

만약 사용자 입력 갯수를 특정할 수 없다면 배열을 통해서 여러개의 입력을 받을 수 있다.

위 예제에서는 read에 -a 옵션을 주어서 배열형태로 값을 받아 words 변수에 저장한 예제이다.

사용자로부터 입력받은 4개의 단어를 for loop를 돌면서 출력해준다.

for loop에 대한 자세한 설명은 추후 글에서 정리하려고 한다.

 

 

반응형