#!/usr/bin/env bash # is int pb_isint() { if [[ $1 =~ ^[0-9]+$ ]] ; then return 0 else return 1 fi } # is number pb_isnum() { if [[ $1 =~ ^[+-]?([0-9]+([.][0-9]*)?|\.[0-9]+)$ ]] ; then return 0 else return 1 fi } # 256 colour functions # usage: # source ./pb # printf %b "$(pb_bg 196)$(pb_fg 254) RED $(pb_nc)\n" pb_nc() { printf '\033[0;0m'; exit; } pb_fg() { if [ -z "$1" ] || ! pb_isint "$1" ; then return 1 fi local x x=$(tput colors) if (("$1" < 256)) && (("$x" > 255)); then printf %s "\033[38;5;$1m" fi return 0 } pb_bg() { if [ -z "$1" ] || ! pb_isint $1 ; then return 1 fi local x x=$(tput colors) if (("$1" < 256)) && (("$x" > 255)); then printf %s "\033[48;5;$1m" fi return 0 } # end 256 colour functions