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

 

 


Tema destacado: Sigue las noticias más importantes de seguridad informática en el Twitter! de elhacker.NET


+  Foro de elhacker.net
|-+  Programación
| |-+  Scripting
| | |-+  Error en script en Linux
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Error en script en Linux  (Leído 9,916 veces)
Straufen

Desconectado Desconectado

Mensajes: 9


Ver Perfil
Error en script en Linux
« en: 6 Abril 2013, 05:25 am »

Hola, tengo una pequeña duda, cuando ejecuto el siguiente script shell en Linux me da error y sinceramente no encuentro el porqué:


Código
  1. #!/bin/bas
  2. echo "SI para ejecutar, no para salir
  3. read $variable
  4. if ["$variable" == "SI"] then
  5. echo "SI funciona"
  6. else
  7. echo "No, salir"
  8. fi

Cuando lee el teclado e ingreso SI o no cualquier cosa, tira el siguiente error:
línea 6 error: error sintáctico cerca del elemento inesperado ○`else'
línea 6: else

No encuentro el erro sinceramente no veo nada malo.


« Última modificación: 6 Abril 2013, 06:19 am por EleKtro H@cker » En línea

xustyx

Desconectado Desconectado

Mensajes: 213


Ver Perfil
Re: Error en script en Linux
« Respuesta #1 en: 6 Abril 2013, 06:16 am »

Código
  1. #!/bin/bash
  2. echo "SI para ejecutar, no para salir"
  3. read $variable
  4. if ["$variable" == "SI"]; then
  5. echo "SI funciona"
  6. else
  7. echo "No, salir"
  8. fi
  9.  

Te dejaste la h del bash.
Cerrar las comillas del segundo echo.
Y el punto y coma despues de la condicion de la variable.

No lo he probado pero creo que ahora te funcionara...

Echale un vistazo antes de postear por que son fallos gordos que con el nano creo que ya te sale en colorines y tal para evitar estos errores.


En línea

-Myx-

Desconectado Desconectado

Mensajes: 39



Ver Perfil
Re: Error en script en Linux
« Respuesta #2 en: 6 Abril 2013, 08:43 am »

Los espacios en los corchetes.

"[" es lo mismo que "test" para bash, es decir es como otro comando mas...por lo que necesita espacio despues de "["

Y necesita que su ultimo argumento sea "]", por lo que necesita espacio antes de este.

Código
  1. if [ "$variable" == "SI" ]; then
En línea

Straufen

Desconectado Desconectado

Mensajes: 9


Ver Perfil
Re: Error en script en Linux
« Respuesta #3 en: 7 Abril 2013, 02:54 am »

Los espacios en los corchetes.

"[" es lo mismo que "test" para bash, es decir es como otro comando mas...por lo que necesita espacio despues de "["

Y necesita que su ultimo argumento sea "]", por lo que necesita espacio antes de este.

Código
  1. if [ "$variable" == "SI" ]; then

En efecto, eso era el error. Por cierto lo de bash si está bien en el script cuando lo pasé aquí al foro me lo comí

De cualquier forma, tengo ahora otro problema. Resulta que ejecuto el script y a la hora de leer la entrada de datos, escribo SI para probar que sirve el echo "Funciona el SI" pero ejecuta el echo del else, no importa si pongo SI, Si, si, sI igual me toma como falsa la comparación de $variable con SI y me tira el echo del else. ¿Cómo corrijo?
En línea

-Myx-

Desconectado Desconectado

Mensajes: 39



Ver Perfil
Re: Error en script en Linux
« Respuesta #4 en: 7 Abril 2013, 07:06 am »

Probablemente sea por el error que se nos paso a todos antes...

Asi no se usa read.
Código
  1. read $variable

Con read no tenes que anteponer el "$" en la variable
Código
  1. read variable

--

Como regla general (creo). Nunca se usa "$" en una variable cuando esta se esta creando/inicializando.
« Última modificación: 7 Abril 2013, 07:11 am por -Myx- » En línea

dato000


Desconectado Desconectado

Mensajes: 3.034



Ver Perfil
Re: Error en script en Linux
« Respuesta #5 en: 7 Abril 2013, 14:43 pm »

a mi me funciono de esta manera

Código
  1. #!/bin/bash
  2.  
  3. echo "SI para ejecutar, no para salir"
  4.  
  5. read variable
  6.  
  7. if [ "$variable" = 'SI' ]; then
  8.  
  9.   echo "SI funciona"
  10.  
  11. else
  12.  
  13.    echo "No, salir"
  14.  
  15. fi
  16.  

Pensaba que al ser un script "bash" no funcionaria si lo guardaba con extension ".sh" pero funciono sin problemas.
En línea


Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Ms Script control, me da un error
Programación Visual Basic
{_The_Alwar_} 1 1,951 Último mensaje 17 Julio 2005, 14:39 pm
por {_The_Alwar_}
Error action script
Diseño Gráfico
Diego_vlc 3 3,099 Último mensaje 26 Junio 2008, 16:04 pm
por Azielito
Error en el script de Internet Explore
Scripting
K6LLUISK6 3 3,898 Último mensaje 19 Julio 2010, 03:02 am
por D4r10xHCx
[VBS] Evitar ventanita de error del script
Scripting
Eleкtro 1 2,859 Último mensaje 8 Noviembre 2011, 12:17 pm
por BlackZeroX
Error en el script de esta pagina
Programación Visual Basic
Buggcon 1 2,433 Último mensaje 4 Abril 2013, 21:42 pm
por LeandroA
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines