私はいくつかの答えを見ましたが、彼らはすべてこれについて話します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 "$@"
次に、残りのスクリプトを実行します。