상위 쉘에 하위 쉘의 색상을 표시합니다.

상위 쉘에 하위 쉘의 색상을 표시합니다.

한 번 풀었는데 어떻게 했는지 기억이 안 나네요!

내 자식 프로세스에는 다음이 있습니다.

echo -e "some control chars"

내 상위 프로세스에서는 터미널 스타일이 없는 일반 문자열이 표시됩니다. 상위 프로세스에 있는 하위 프로세스의 stdout/stderr에서 제어 문자를 해석하는 방법이 있습니까?

특히 상위 항목에 다음 bash 기능이 있습니다.

ql_cyan='\033[1;36m'
ql_no_color='\033[0m'

function ql_log_colors {
    echo "sourcing quicklock.sh"
    echo -e "${ql_cyan}sourcing quicklock.sh${ql_no_color}";
    echo "${ql_cyan}sourcing quicklock.sh${ql_no_color}";
}

export -f ql_log_colors

ql_log_colors현재 쉘에서 실행 하면 색상이 표시됩니다!

그러나 ql_log_colors하위 셸에서 호출하면 상위 셸에는 색상이 표시되지 않고 일반 문자열 "Purchasing Quicklock.sh"만 표시됩니다.

보시다시피 저는 echo 명령의 3가지 변형을 시도했고 자식에서 echo 문이 호출되면 모두 부모에서 일반 텍스트를 출력했습니다.

관련 정보