bash shell script 에서 사용자 입력을 받는 것에 대해 작성한적이 있다.
어느날 사용자 입력을 받다 보니..... 실수로 오타가 났을때 백스페이스키 또는 delete키를 이용해서 오타 난것을 지워야 하는데
제대로 지워지지 않고 ctrl + backspace 키 조합으로 눌러야 하는 불편함이 발생하기도 했다.
물론 ctrl+backspace 키가 편한 사람도 있지만 아닌 사람도 있기에 조금더 편하고자 이글을 작성한다.
[ user_name@hostname ] # cat input_test.sh
#!/bin/bash
echo -n "input ? "
read ans_input
echo "ans_input : ${ans_input}"
주로 위와 같은 코드로 작성을 할 경우 아래와 같이 입력을 받을수 있고 입력을 받다가 오타가 나서 backspace를 누를 경우 "^H"와 같이 입력이 되어서 정상적으로 입력이 되었는지 육안으로 확인이 어려울수 있다.
[ user_name@hostname ] # cat input_test.sh
#!/bin/bash
echo -n "input ? "
read -e ans_input # read command에 "-e"옵션을 추가 한다.
echo "ans_input : ${ans_input}"
위와 같이 read command에 "-e " 옵션을 추가 하면 backspace key를 사용할 수 있게 된다.
기존과 달리 "^H"는 생기지 않지만 "input ?" 이라는 질문(?)까지 모두 지워져 버렸지만....그래도 이전보다는 확인이 쉬워졌다.
echo 와 read를 같이 쓸 경우 질문(?)인 "input ?" 이라는 것까지 모두 지워버린다.
이 부분도 아쉬운거 같으니 read command만을 이용해서 처리하는 방법으로 하면 위와 같은 현상을 해소 할수 있다.
[ user_name@hostname ] # cat input_test.sh
#!/bin/bash
#echo -n "input ? " # 기존 echo & read 방식에서 echo를 삭제(주석)처리
read -e -p "input ? " ans_input
echo "ans_input : ${ans_input}"
echo를 제외하고 read만을 이용하여 할 경우 깔끔(?)하게 backspace key를 사용할 수 있게 된다.
필요하지 않은 분들도 있겠지만.. .조금이라도 도움이 되길 바라면 오늘도 필자는 끄적거린다.
'Development > Bash Shell script' 카테고리의 다른 글
[BASH Shell] case 문( 활용 포함) (0) | 2022.04.05 |
---|---|
[BASH Shell] shell script 사용자 입력 받기 (input user keyboard) (0) | 2022.01.11 |
[BASH Shell] shell script 주석(한줄 주석/여러줄(블럭단위) 주석) (0) | 2019.05.03 |
[BASH Shell ] 숫자 자릿수 0으로 채우기(00, 01, 02 ....) (0) | 2018.09.28 |
[BASH Shell ] 문자열 길이 구하기 (0) | 2018.09.18 |