Você já está usando printf
na ramificação true
da instrução if
, que suporta saída formatada. Que tal algo assim, assumindo $CS
contém o valor de verdade da sua condição "Encontrado" vs "Não encontrado":
printf "$color%-50s%s$RESET\n" "$url" "$status"
Em que $color
é o código ANSI da cor desejada, $RESET
é o código ANSI \e[0m
e $url
e $status
são a sequência de URL e as cadeias de status [Found] ou [Not Found] , respectivamente.
Aqui está um exemplo completo. Note que usei sh
na shebang, mas isso também é totalmente compatível com a sintaxe bash:
#!/bin/sh
BLUE="^[[0;34m"
RED="^[[0;31m"
RESET="^[[0m"
CS=0
for url in http://example.com/foo http://example.com/longer_address ; do
if [ $CS -eq 0 ]; then
color=$BLUE
status='[Found]'
else
color=$RED
status='[Not Found]'
fi
printf "$color%-50s%s$RESET\n" "$url" "$status"
CS=1 # Change truth condition for next test
done