반응형
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사용하기
반응형
'Development > Bash Shell script' 카테고리의 다른 글
[BASH Shell] Shell script사용자 입력 받기 - backspace 키 사용하기 (0) | 2022.04.06 |
---|---|
[BASH Shell] case 문( 활용 포함) (0) | 2022.04.05 |
[BASH Shell] shell script 주석(한줄 주석/여러줄(블럭단위) 주석) (0) | 2019.05.03 |
[BASH Shell ] 숫자 자릿수 0으로 채우기(00, 01, 02 ....) (0) | 2018.09.28 |
[BASH Shell ] 문자열 길이 구하기 (0) | 2018.09.18 |