Cómo ejecutar sh desde el archivo sh

Desarrollé una aplicación Java. Dividí la aplicación en 5 sub-aplicaciones y creé un contenedor de servicio para cada sub-aplicación usando scripts de shell:

subaap1/bin/app.sh subaap2/bin/app.sh ... 

Ahora quiero crear un script de inicio startup.sh para ejecutar todos los scripts de envoltura:

#!/bin/bash sh subaap1/bin/app.sh start sh subaap2/bin/app.sh start ... 

Pero cuando lo ejecuto, obtengo:

Comando inesperado: inicio

¿Cómo puedo solucionar esto?

Comentarios

  • Hasta donde yo sé, ese error proviene de su aplicación. ¿Qué comando escribe para ejecutar subaap1?

Respuesta

No debería necesitar usar sh en su secuencia de comandos para ejecutar sus aplicaciones secundarias.

Simplemente use:

#!/bin/bash subaap1/bin/app.sh start subaap2/bin/app.sh start ... 

Actualizado según los comentarios a continuación:

su versión debería funcionar, sin embargo, necesita saber a qué shell llama sh. Puede ser que tenga el shell incorrecto o que los permisos de sus aplicaciones sean incorrectos para el shell que está intentando utilizar.

Comentarios

  • ¿Estás seguro? bash pasará los argumentos a la secuencia de comandos que ' en ejecución (que ' es a lo que mi sh está vinculado simbólicamente); yo no ' no sé acerca de otros shells
  • @Michael – ¿los pasará si usas sh? Podrías tener razón – simplemente no ' no de esa manera. Siempre rodeo el mío entre comillas si quiero hacer eso. O como aquí, solo t elimine sh y bash está feliz de asumir que la línea es una aplicación.
  • He intentado ejecutar subaap1/bin/app.sh start desde la línea de comandos, y funciona perfectamente. Ahora cambio el script de shell sin sh pero obtuve startup.sh: line 2: subaap1/bin/app.sh: Permission denied. ¿Alguna sugerencia señor?
  • Sí, probé sh /path/to/shell/script arg y el argumento lo logró. Sin embargo, podría depender de qué shell sh esté realmente vinculado
  • @Michael – ¡buen punto! sh podría ir a otro lugar que no sea bash.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *