Permítanme describir primero mi situación, estoy trabajando en una plataforma Linux y tengo una colección de archivos .bmp
que agregan uno al número de foto de filename0022.bmp
hasta filename0680.bmp
. Entonces un total de 658 imágenes. Quiero poder ejecutar cada una de estas imágenes a través de un archivo .exe que funciona en la imagen y luego ejecuta el archivo en un archivo especificado por el usuario, también tiene algunos argumentos de umbral: inferior, superior. Por lo que la llamada típica para el ejecutable es:¿Cómo hacer un bucle de un comando ejecutable en el terminal en Linux?
./filter inputfile outputfile lower upper
¿Hay una manera que puede recorrer esta llamada a través de todos los archivos sólo desde el terminal o mediante la creación de algún tipo de escritura del golpe? Mi problema es similar a esto: Execute a command over multiple files with a batch file pero esta vez estoy trabajando en una terminal de línea de comandos de Linux.
esto es lo que probé e imprimió un montón de cosas algo relevantes para mi pantalla, pero en realidad no creó ningún archivo ... #!/Bin/bash para ((a = 022; a <= 680; a ++)) hacer printf" ./filter feto-00-2.3.5um__voi0% 04d.bmp fetus_threshold_% 04d 90 240" $ a hecho donde 90 y 240 son los argumentos inferior y superior que mencioné anteriormente. No he hecho un script bash, así que usé emacs para crear un archivo donde escribí las líneas de código anteriores. Luego guardé el archivo emacs simplemente como prueba. sin nada detrás porque eso es lo que vi hacer en línea. ¿Algún consejo más? –
intente convertirlo en un archivo .sh (con la nueva adición que hice anteriormente) y luego ejecute el archivo escribiendo [[bash myfile.sh]] en el mismo directorio – scottyaz
Bueno, buenas noticias ... al menos itera esto tiempo e incluso funciona en la primera imagen, luego recibo algunos errores del software que está usando el ejecutable. Lo que no entiendo es que está intentando comenzar en inputfile0000 y le decimos que comience con inputfile0022.bmp. La única imagen de salida que obtengo es outputfile0000.bmp. Aquí está el archivo bash que guardé como threshold.sh: #!/bin/bash para ((a = 022; a <= 680; a ++)) do printf "./filter6 fetus-00-2_3.5um__rec_voi% 04d.bmp fetus_threshold_% 04d.bmp 90 240" $ a | "sh" hecho –