bash script2020. 10. 21. 16:56

 

반달가면 이글루에서 백업 - bahndal.egloos.com/406163

 

그냥 echo 명령만 사용하면 자동으로 줄바꿈이 되는데, 전에 출력한 문자열을 지우고  새 문자열을 겹쳐 쓰고 싶다면 -n 옵션과 -e 옵션을 사용하자.

-n 옵션은 줄바꿈을 하지 않는 것이고, -e 옵션은 리턴(\r), 탭(\t) 등을 사용할 수 있게 해 주는 옵션이다.

echo "abc\tdef"
abc\tdef
echo -e "abc\tdef"
abc    def

전에 출력한 문자열을 지우고 그 자리에 새로운 문자열을 출력하려면, 첫번째 문자열을 출력할 때 -n 옵션으로 줄바꿈을 억제한 후에 다음 문자열을 출력할 때 -e 옵션으로 리턴(\r)을 출력해서 프롬프트를 줄 시작점으로 보내주면 된다. 아래의 예시를 참고하자.

echo -n "this is the first."
sleep 3
echo -e "\rthis is the 2nd.   "

첫번째 문자열 출력후 3초후에 두번째 문자열을 같은 줄에 겹쳐 쓰게 된다.

두번째 문자열이 첫번째보다 짧다면 이전 출력 뒷부분이 남을 것이므로 뒤쪽에 공백(space)을 충분히 주자.

shell script에서 진행 상황을 표시해 주고 싶을 때 요긴하게 사용할 수 있다. 

 

728x90
Posted by 반달가면