scripts - Redirigir argumentos a un programa(BASH)
scripts linux ejercicios resueltos (1)
Puede usar $(< file)
para leer un archivo en una variable. Usarlo sin comillas hará que los contenidos pasen como argumentos múltiples.
your_path=../file/test
test_path=../../public/test
file_input="$1"
contents=$(< "$file_input")
"$test_path" $contents > correctanswer 2>&1
"$your_path" $contents > youransweranswer 2>&1
diff correctanswer youranswer
Esto puede escribirse más sucintamente usando la sustitución de procesos:
diff <(../../public/test $(< "$1")) <(../file/test $(< "$1"))
Soy bastante nuevo en bash scripting y una parte en la que estoy atascado es después de done< "$file_input"
Lo que intento lograr es cuando ejecuto el programa ./test dentro del archivo de prueba contiene los números 15 14 90 22 y el programa va a tomar esos números como argumentos y ejecutarlos, pero no estoy seguro de cómo hacerlo. ¿Voy en la dirección correcta? Gracias por cualquier ayuda
if [[ "$#" -ne 1 ]]
then
writeusage
exit
fi
your_path=../file/test
test_path=../../public/test
file_input="$1"
while read -r line
do
args+="$line"
done < "$file_input"
----------------- No estoy seguro de cómo redirigir los argumentos en un archivo de texto a mi programa y luego poner el resultado en un archivo llamado correctanswer y diff them
# Redirect the output to a file named text
$test_path > correctanswer 2>&1
# Redirect your output to a file named text2
$your_path > youranswer 2>&1
# diff the solutions
diff correctanswer youranswer