Development/Bash Shell script

[BASH Shell] shell script 사용자 입력 받기 (input user keyboard)

louky 2022. 1. 11. 17:30
반응형

Shell script  에서 사용자 입력 받는 방법이다. 

 

먼저 흔히 알고 있는 echo와 read를 사용한 방법이다. 

 

[echo-read] no color

# No Color with Default
echo "# No Color with Default"
echo -n "+ Input keyboard ? "
read input_keyboard

echo "ans) input_keyboard : ${input_keyboard}"

 

echo의 color를 이용한 color로 출력하는 방법이다. 

[echo-read] color

# Color with Default
color_red='\e[31m'
color_green='\e[32m'
color_yellow='\e[33m'
color_blue='\e[34m'
color_reset='\e[0m'

echo "# Color with Default"
echo -en "${color_red}+ Input keyboard ?${color_reset} "   # Display in red
read input_keyboard

echo "ans) input_keyboard : ${input_keyboard}"

 

다음은... echo 를 사용하지 않고 read로 바로 하는 방법이고 라인수를 줄이고자 할때나 편히 사용하고자 한다면 사용하면 된다. 

 

[only read] no color

# No color with only read cmd
read -p "++ input keyboard ? " read_input_keyboard       
echo "ans) read_input_keyboard : ${read_input_keyboard}"

[only read]  color

: read만으로 color를 표현하고자 할 경우 싱글쿼터(')를 사용해야 한다. 싱글쿼터를 사용하다보니 Color변수를 설정해도 제대로 반영이 안된다. 

 

# color with only read cmd
color_red='\e[31m'
color_green='\e[32m'
color_yellow='\e[33m'
color_blue='\e[34m'
color_reset='\e[0m'

read -e -p $'\e[32m++ input keyboard ?\e[0m ' read_input_keyboard   # Display in green
echo "ans) read_input_keyboard : ${read_input_keyboard}"

 

 

** Update : 2022.11.17

아래와 같이 할 경우 Color 변수를 활용 할 수 있다

# Color 
c_red='\033[0;31m'              ## Red Color
c_blue='\033[0;34m'             ## Blue Color
c_yellow='\033[1;33m'           ## Yellow Color
c_orange='\033[0;33m'           ## Orange Color
c_green='\033[0;32m'            ## Green Color
c_bold_green='\033[1;32m'       ## Green Color
c_magenta='\033[1;95m'          ## magent Color (same is purple)
c_lightred='\033[1;31m'
no_color='\033[0m'                    ## Unset Color(NoColor)



send_cmd_PROMPT="${c_green}+ Input Command ?${no_color}"
   
read -e -p "$(echo -e ${send_cmd_PROMPT}) " ans_send_cmd

echo "ans_send_cmd : ${ans_send_cmd}"

 

 

사용자 입력받을때 backspace key사용하기 

2022.04.06 - [Script Language/Bash Shell script ] - [BASH Shell] Shell script사용자 입력 받기 - backspace 키 사용하기

 

[BASH Shell] Shell script사용자 입력 받기 - backspace 키 사용하기

bash shell script 에서 사용자 입력을 받는 것에 대해 작성한적이 있다. 2022.01.11 - [Script Language/Bash Shell script ] - [BASH Shell] shell script 사용자 입력 받기 (input user keyboard) [BASH Shell]..

louky0714.tistory.com

 

반응형