elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Introducción a Git (Primera Parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Scripting
| | |-+  Programa de Loggin en Bash
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Programa de Loggin en Bash  (Leído 3,962 veces)
TecShell

Desconectado Desconectado

Mensajes: 2



Ver Perfil
Programa de Loggin en Bash
« en: 5 Junio 2020, 21:45 pm »

Hola, estoy tratando de aprender bash, y ultimamente estuve teniendo problemas con la sintaxis del bucle while, ya que en varios sitios he encontrado que debo escribirle dos puntos o punto y coma, luego de la condición, a veces dicen que debo escribir un "end" al final del bucle, hasta algunos dicen distintas cosas sobre como escribir la condición, me gustaría que alguien me aclare esta sencillés.
Si hay algún otro error por favor diganme (Trate de seguir todas las reglas del foro, soy nuevo, sepan disculpar si algo no está dentro de estas)

Acá está el código

Código
  1. #!/bin/bash                                                                    
  2. codi='FRAN'
  3. echo -e "Hola, escriba su nombre porfavor"
  4. read nombre
  5. while [$nombre!=$codi]:
  6. do
  7. echo -e "Escriba su nombre porfavor..."
  8. read nombre
  9. done
  10. echo -e "Bienvenido $nombre"
  11.  

Cada vez que lo ejecuto tengo el siguiente error
Código:
./bucle.sh 
Hola, escriba su nombre porfavor
FRAN
./bucle.sh: línea 5: [FRAN!=fran]:: orden no encontrada
Bienvenido FRAN



En línea

EdePC
Moderador Global
***
Desconectado Desconectado

Mensajes: 2.159



Ver Perfil
Re: Programa de Loggin en Bash
« Respuesta #1 en: 6 Junio 2020, 03:53 am »

Saludos,

- Depende del tipo de sintaxis que uno desea seguir, por ejemplo está la sintaxis tipo C#

Código
  1. while (condicion)
  2. {
  3.  instrucciones
  4. }

-- Y la otra que va de corrido:

Código
  1. while (condicion) {
  2.  instrucciones
  3. }

- 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:

Código
  1. while [[ "$nombre" != "$codi" ]]; do
  2.  echo "Escriba su nombre por favor..."
  3.  read nombre
  4. 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.


En línea

TecShell

Desconectado Desconectado

Mensajes: 2



Ver Perfil
Re: Programa de Loggin en Bash
« Respuesta #2 en: 6 Junio 2020, 17:56 pm »


- 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.

Muchas gracias, estoy siguiendo este manual https://thales.cica.es/rd/glinex/practicas-glinex05/manuales/bash/practica.pdf pero solo muestra como comparar variables numéricas con while, por lo que decidí explorar más.
Mi confusión se dio por mirar en tantos sitios diferentes  y por estar acostumbrado a escribir en c donde no importan los espacios... Hay que leer mas xD
En línea

Kennst0xmich

Desconectado Desconectado

Mensajes: 1



Ver Perfil
Re: Programa de Loggin en Bash
« Respuesta #3 en: 18 Junio 2020, 09:05 am »

¡Hey! podrías completar un poco tu aprendizaje con este sitio, le vi bastante cosas útiles :D
http://trajano.us.es/~fjfj/shell/shellscript.htm
« Última modificación: 18 Junio 2020, 09:09 am por Kennst0xmich » En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
[bash]: inyectar mandatos a un programa / mandar mail
Scripting
Ragnarok 0 2,222 Último mensaje 20 Julio 2006, 01:55 am
por Ragnarok
Loggin en MYSQL « 1 2 »
Java
Debci 14 7,265 Último mensaje 2 Agosto 2009, 19:57 pm
por Pablo Videla
Lanzar programa desde script [bash]
Scripting
a_ras2002 2 5,962 Último mensaje 2 Septiembre 2011, 22:08 pm
por leogtz
Página de Loggin para varios usuarios
Desarrollo Web
NikNitro! 4 3,048 Último mensaje 9 Mayo 2014, 22:04 pm
por NikNitro!
Loggin
Desarrollo Web
Luiggi 1 1,868 Último mensaje 13 Febrero 2018, 16:28 pm
por srWhiteSkull
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines