Soy un novato en scripting de bash y he estado buscando en Google este escenario durante unas seis horas sin éxito. He encontrado segmentos de lo que necesito pero no una solución integral.
Aquí está el problema: necesito escribir un código que pueda verificar que existen 3 archivos ( file1.txt
, file2.csv
y file3.log
). Sin embargo, antes de continuar, necesito confirmar que file3.log
ha dejado de escribir (esto es para confirmar que el script que crea los 3 archivos ha finalizado correctamente).
comprobar la existencia de estos archivos parece bastante fácil usando algo como:
if [ -f -e /path/to/file/file1.txt && /path/to/file/file2.csv && /path/to/file/file3.log]
then
# somehow check the exit status of file3.log
if [$? !=0]
#somehow loop (maybe every 5 minutes) until $?=0
done
O
También estaba pensando, ¿puedo evitar todo esto junto y simplemente verificar el estado de salida del script inicial? pero no estaba seguro porque si había algún tipo de falla y los archivos no se creaban, entonces sería un problema grave porque la siguiente parte del proceso de escaneo demora aproximadamente 2 días...
Lo siento si esto puede parecer una pregunta estúpida, estoy tan metido en el agujero de Google "si-hasta-salir-cero-si no..." que no tengo idea de qué hacer desde aquí.
Respuesta1
Para comprobar que un programa con nombre o un script ha finalizado, utilice el comando:
wait $(pgrep program-name)