一度解いたけどどうしたのか覚えてないですね!
私の子プロセスには次のものがあります。
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ステートメントが呼び出されたときに親からプレーンテキストを出力しました。