Linux/Unix Shell Scripting - AYUDA: Demasiados argumentos

   
Vista:
Imágen de perfil de Emilio

AYUDA: Demasiados argumentos

Publicado por Emilio (2 intervenciones) el 14/03/2016 20:03:52
Hola Que tal.
tengo este script donde realiza una pregunta por pantalla y dependiendo de lo que se ingrese nos dirá si es correcto o incorrecto, pero al ingresar un valor me envìa el siguiente error test: too many arguments en esta linea if test $var1 = $respuesta.

Por favor me podrían orientar...Gracias.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
#!/bin/bash
echo "Quien descubriò America?"
 
read var1
respuesta='cristobal colon'
 
if test $var1 = $respuesta
    then
        echo "Es Correcto"
 
        else
          echo "No es correcto"
 
fi
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de xve

AYUDA: Demasiados argumentos

Publicado por xve (253 intervenciones) el 14/03/2016 20:45:50
Hola Emilio, es que esta linea es errónea:
1
if test $var1 = $respuesta

En un if, tiene que ir entre corchetes... algo así:

1
2
3
if [ $var1 = $respuesta ]; then
    ...
fi
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar

AYUDA: Demasiados argumentos

Publicado por Tom (253 intervenciones) el 15/03/2016 09:03:21
La sintaxis es correcta, pero tienes un problema con las comillas, ya que respuesta contiene varias palabras.
Esto es recomendable hacerlo _siempre_ que compares strings:

respuesta="Cristóbal Colón"

if test "$var1" = "$respuesta"
then
...

Si lo haces como comenta xve (es la opción más usada, '[' es un alias para test que puede ser un ejecutable externo, o un shell-builtin), debes usar de la misma forma las comillas.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
Imágen de perfil de Emilio

AYUDA: Demasiados argumentos

Publicado por Emilio (2 intervenciones) el 15/03/2016 16:55:13
Gracias Tom / xve si me funcionò y me fue de mucha Ayuda.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar