カラー出力 - Bash

カラー出力 - Bash

私はいくつかの答えを見ましたが、彼らはすべてこれについて話しますecho。 Bashでコマンド出力の色を変更するには?たとえば、hostnameコマンドの出力を色分けしたいと思います。

$ hostname 
Nameofcomputer <--- Just the output to be colored and then it returns to default color of the shell.

ベストアンサー1

私が提案した@finefootのおかげで、このコードはうまくいくようです。

#!/bin/bash

case $1 in
  red)     col=$'\e[1;31m' ;;
  green)   col=$'\e[1;32m' ;;
  yellow)  col=$'\e[1;33m' ;;
  blue)    col=$'\e[1;34m' ;;
  magenta) col=$'\e[1;35m' ;;
  cyan)    col=$'\e[1;36m' ;;
esac

printf "%s" "${col}"

shift
exec "$@"

使用法

それが呼び出されると仮定しset-color、それを呼び出すために使用しますset-color red hostname

説明する

  • Jasonwryanの答えによると、ケースブロックは色を定義します。ここ
  • このスクリプトはこの色を設定するために使用されますprintf
  • shiftスクリプトに入力された最初のオプション(色など)を削除します。
  • exec "$@"次に、残りのスクリプトを実行します。

おすすめ記事