Foros del Web » Programación para mayores de 30 ;) » Programación General »

Programación en Bash

Estas en el tema de Programación en Bash en el foro de Programación General en Foros del Web. Hola, a ver si alguien puede ayudarme. Estoy intentando hacer un script al que se le pasan 2 ficheros cuyo contenido ahora explicaré... Tengo un ...
  #1 (permalink)  
Antiguo 15/05/2006, 05:24
 
Fecha de Ingreso: febrero-2005
Mensajes: 105
Antigüedad: 19 años, 9 meses
Puntos: 1
Programación en Bash

Hola, a ver si alguien puede ayudarme. Estoy intentando hacer un script al que se le pasan 2 ficheros cuyo contenido ahora explicaré...

Tengo un programa llamado espejo al que lepaso una cadena, y al ejecutarse me devuelve la cadena pero invertida.

Pues bien, al script que estoy intentando hacer le paso como parámetros dos ficheros, uno con la entrada al programa espejo y otro con la salida esperada. Este script tiene que ejecutar el programa espejo y compara la salida con la salida esperada.

Mi problema es que no sé como hacer que se ejecute el programa espejo para almacenar su resultado en una variable que después usaré para compararla con el contenido del fichero de salida deseada del script.

El código que tengo es:

#!/bin/bash

echo ""

# Comprobamos el número de parámetros de entrada.
if [ $# -ne 2 ] ; then
echo "el script requiere 2 argumentos."
echo ""
exit 1
fi

# Comprobamos que los parámetros son ficheros.
for cont in $* ; do
if [ ! -f $cont ] ; then
echo "El parámetro $cont no es un fichero."
echo ""
exit 1
fi
done

# Ejecutamos el programa y el resultado lo almacenamos en la variable res.
# Compararemos el contenido de res con la salida esperada (salida_script1).
aux=$(cat entrada_script1)
echo $aux
AQUÍ es donde, pruebe lo qu epruebe no sé resolver, me da error si hago: res=$(espejo entrada_script1)


echo ""


Si tubiera algo de ayuda os lo agradecería, please. Gracias!!!

Última edición por gazpachoymochil; 15/05/2006 a las 05:29
  #2 (permalink)  
Antiguo 15/05/2006, 10:44
 
Fecha de Ingreso: febrero-2005
Mensajes: 105
Antigüedad: 19 años, 9 meses
Puntos: 1
Ya tengo la respuesta, había algún pequeño error en el código, pero la parte crítica es:

# Ejecutamos el programa y el resultado lo almacenamos en la variable res.
# Compararemos el contenido de res con la salida esperada (salida_script1).
aux=$(cat salida_script1)
echo $aux
res=$(./espejo < $1)
echo $res
diff $aux $res


evidentemente, el diff lo haremos entre 2 ficheros, no entre 2 variables...
  #3 (permalink)  
Antiguo 15/05/2006, 16:47
 
Fecha de Ingreso: septiembre-2004
Mensajes: 252
Antigüedad: 20 años, 1 mes
Puntos: 0
cat fichero | rev


si lo queres en script para pasar argumentos

#!/bin/bash

cat $1 |rev
  #4 (permalink)  
Antiguo 16/05/2006, 15:18
 
Fecha de Ingreso: febrero-2005
Mensajes: 105
Antigüedad: 19 años, 9 meses
Puntos: 1
muchas gracias, lo probaré...
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 14:32.