bash - español - programacion shell linux ejemplos
Bash script llama a vi para la edición manual, luego se reanuda el script? (1)
En bash
, cada enunciado es esencialmente como una llamada implícita al system
(a menos que sea un comando de shell incorporado) ya que los scripts del shell están diseñados para facilitar la ejecución de otros programas.
backup some_file.txt
vi some_file.txt # The script blocks until the user exits vi
verify_syntax some_file.txt
La única diferencia entre usar vi
y un comando como ls
es que ls
hará lo suyo y saldrá sin la intervención del usuario, mientras que vi
(o cualquier comando interactivo) se ejecutará hasta que el usuario salga explícitamente.
Escribí una secuencia de comandos que crea una copia de seguridad de un archivo de texto y una segunda secuencia de comandos que verifica cierta sintaxis en el archivo de texto mediante SED.
En el medio, hay un proceso manual: los usuarios editan el archivo original y añaden algunas cadenas. Este proceso debe seguir siendo manual.
Me gustaría fusionar mis dos scripts para que se cree la copia de seguridad, vi está abierto para el usuario, cuando el usuario termine de editar el archivo, el script reanuda la verificación de la sintaxis.
Estoy aprendiendo haciendo, pero realmente no sé cómo codificar la parte "abrir vi, esperar a que el usuario haga su edición, tomar el control y reanudar con verificación".
Leí que hay una función llamada sistema (en Perl) que podría usarse, pero mi código está en BASH.
¿Alguna sugerencia sobre cómo hacer esto en BASH? ¡Gracias!