Script Bash para pasar argumentos a un script

Script Bash para pasar argumentos a un script

No tengo mucha experiencia con scripts bash. Puede que lo que intento hacer aquí no sea complicado, pero tengo algunos problemas.

Entonces tengo un script C que debo usar para ejecutar aproximadamente 70.000 archivos. El script invocó ciertas entradas para que yo las ingresara una por una. Por ejemplo, me solicita que ingrese (y/n) para sí o no 7 veces una tras otra. Entonces, por ejemplo, si ejecuto el script en un archivo, me pedirá que ingrese sí o no para algo seguido de múltiples mensajes que preguntan (sí/no). En este caso hay 7 indicaciones y/n. Luego continúa solicitando varios otros parámetros que ingreso una vez que se me solicitan, por ejemplo, c para continuar, 100 para porcentaje, etc.

Todos estos parámetros son los mismos para los 70.000 archivos. Me preguntaba si alguien puede guiarme sobre cómo pasar todos estos argumentos al script bash una vez que se les solicite. Bastante básico pero esto es lo que tengo hasta ahora:

var='testdir/*'
for i in var; do
    /script $i
done

Los comandos bash anteriores invocan el script pero me solicitan que ingrese todos esos parámetros para cada archivo. Nota: No puedo manipular el script subyacente.

Respuesta1

Este es un trabajo para expect.

Digamos que su programa C genera algo similar a lo siguiente:

question 1? (y/n):
question 2? (y/n):
enter some percent value:
bunch of stuff
confirm? (y/n):

Escribirías un script esperado como:

#!/usr/bin/expect

foreach file [glob /path/to/70k/files/*] {
  spawn "/path/to/c_prog" $file

  expect "question 1? (y/n): " { send "y\r" }
  expect "question 2? (y/n): " { send "n\r" }
  expect "enter some percent value: " { send "100\r" }
  expect "confirm? (y/n): " { send "y\r" }
  interact
}

Luego, ejecute chmod +xel script y ejecútelo, oexpect /path/to/script

información relacionada