Как установить переменную с цветом и выравниванием по левому краю с bash
Пример:
red=$(tput setaf 1)
green=$(tput setaf 2)
normal=$(tput sgr0)
if [ $process_state != "running" ]; then
process_state=${red}$process_state${normal}
else
process_state=${green}$process_state${normal}
fi
printf "%-10s|" $process_state
Входы
process_state=running
process_state=stopped
Выход
running | <-- Where this is in green
stopped | <-- Where this is in red
Решение:
red=$(tput setaf 1)
green=$(tput setaf 2)
normal=$(tput sgr0)
if [ $process_state != "running" ]; then
process_state="${red} $process_state ${normal}"
else
process_state="${green} $process_state ${normal}"
fi
printf "%s%-10s%s|" $process_state
Примечание: обратите внимание на пробелы вокруг $ process_state, отделяющие его от цвета.