"Hello World"를 올바른 색상으로 인쇄하기 위해 왜 이러한 백슬래시가 모두 필요한지 약간 혼란스럽습니다.
xxx@yyy:/tmp$ echo $Red
\033[0;34m
xxx@yyy:/tmp$ echo $Red
\033[0;31m xxx@yyy:/tmp$ echo -e "Hello ${Red} World" | sed "s/^/\\\\\\${Blue}/g" | xargs echo -e
Hello World
그 이유는 무엇입니까? 원래 에코에 색상을 통합하는 다른 더 쉬운 방법이 있습니까? 텍스트 파일을 가져와서 콘솔에서 보기 전에 색상을 입력하는 비슷한 작업을 수행해야 합니다.
감사해요
답변1
echo
전체 텍스트를 한 번에 색칠하는 것이 전부라면, 색상 코드와 출력하려는 텍스트를 동일한 명령으로 결합할 필요가 없습니다.
red="$(echo -e "\033[0;31m")"
reset="$(echo -e "\033[0m")"
echo "$red"
echo "This text is red."
echo "$reset"
포함된 색상 코드를 다시 변경하려는 경우 전체 이스케이프 시퀀스를 제거할 필요가 없습니다. 빨간색 텍스트를 노란색으로 변경하려면 다음을 수행하세요.
echo "$color_festooned_text" | sed 's/;31/;33/g'