Saludos,
- Depende del tipo de sintaxis que uno desea seguir, por ejemplo está la sintaxis tipo C#
while (condicion)
{
instrucciones
}
-- Y la otra que va de corrido:
while (condicion) {
instrucciones
}
- En Bash se tiene que escribir cada instrucción en una línea aparte como el primer While que puse, PERO si se quiere poner ese DO en la misma línea hay que utilizar un punto y coma ( ; ) para escribir más de una instrucción en la misma línea:
while [[ "$nombre" != "$codi" ]]; do
echo "Escriba su nombre por favor..."
read nombre
done
- Además, como ves hay que tener especial cuidado en los espacios que hay que dejar después de
[[ y antes de
]], lo mismo con los espacios antes y después del signo de comparación
!=. Todo esto es obligatorio o no funciona.
- Como buena práctica se acostumbra poner entre comillas las variables si la comparación es texto literal, además el utilizar doble corchete, aunque esto último es más para acostumbrarse ya que un solo corchete funciona bien siempre y cuando no se vayan a utilizar comparaciones más complejas.
-- Es por costumbre como el usar
echo -e que sirve para utilizar secuencias de escape como
\a \v \n aunque no veo que las uses, en este caso yo no usaría
-e- Que libro, manual o tutorial estás siguiendo? Al menos yo no he encontrado algo bueno en español salvo este:
http://es.tldp.org/COMO-INSFLUG/es/pdf/Bash-Prog-Intro-COMO.pdf es bastante viejito del 2000 y no tiene documentado el doble corchete XD, pero es bastante bueno y entendible, otra opción muy completa pero en inglés es:
http://tldp.org/LDP/abs/abs-guide.pdf del 2014. Y por supuesto los ejemplos rápidos y completos de Notes for Professionals:
https://books.goalkicker.com/BashBook/BashNotesForProfessionals.pdf del 2016.