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

