親シェルに子シェルの色を表示します。

親シェルに子シェルの色を表示します。

一度解いたけどどうしたのか覚えてないですね!

私の子プロセスには次のものがあります。

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ステートメントが呼び出されたときに親からプレーンテキストを出力しました。

ベストアンサー1

おすすめ記事