tengo la siguiente función:Bash: Salida de color con una variable
function pause #for prompted pause until ENTER
{
prompt="$3"
echo -e -n "\E[36m$3" #color output text cyan
echo -e -n '\E[0m' #ends colored output
read -p "$*" #read keys from user until ENTER.
clear
}
pause "Press enter to continue..."
Sin embargo, mi función se niega a aplicar el color cian a la cadena que pasan a la función.
Una pregunta similar se le pidió here, pero parece que estoy haciendo todo correctamente ...
Citando '$ *' hace que el resultado se vea como una sola cadena. En el comando 'read' del OP, todos los argumentos pasados a la función se imprimieron como el aviso. No hay nada en particular equivocado al hacerlo de esa manera. Su punto 1 es esencialmente correcto, sin embargo, para ser coherente con lo que el OP parece estar haciendo, debería ser '$ @' en lugar de '$ 3' (o' $ 1'). No hay nada de malo en la secuencia ANSI del OP, me funciona. –
No hay nada de malo en 'leer -p" algo "' – dschulz
Ni siquiera con 'read -p" $ * "' – dschulz