Comment exécuter sh à partir du fichier sh

Jai développé une application Java. Jai divisé lapplication en 5 sous-applications et créé un wrapper de service pour chaque sous-application à laide de scripts shell:

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

Maintenant, je veux créer un script de démarrage startup.sh pour exécuter tous les scripts wrapper:

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

Mais quand je lexécute, jobtiens:

Commande inattendue: start

Comment puis-je résoudre ce problème?

Commentaires

  • Pour autant que je sache, cette erreur vient de votre application. Quelle commande tapez-vous pour exécuter simplement subaap1?

Réponse

Vous ne devriez pas avoir besoin dutiliser sh dans votre script pour exécuter vos sous-applications.

Utilisez simplement:

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

Mis à jour selon les commentaires ci-dessous:

votre version devrait fonctionner, mais vous devez savoir quel shell sh appelle. Il se peut que vous nayez pas le bon shell, ou que les autorisations sur vos applications soient incorrectes pour le shell que vous essayez dutiliser.

Commentaires

  • Êtes-vous sûr? bash transmettra les arguments au script que vous ' en cours dexécution (que ' est ce à quoi mon sh est lié symboliquement); je ne ' je ne connais pas les autres shells
  • @Michael – les transmettra-t-il si vous utilisez sh? Vous avez peut-être raison – je ne ' pas comme ça. Jentoure toujours le mien entre guillemets si je veux faire ça. Ou comme ici, jus t remove sh et bash est heureux de supposer que la ligne est une application.
  • Jai essayé dexécuter subaap1/bin/app.sh start à partir de la ligne de commande, et cela fonctionne parfaitement. Maintenant, je change le script shell sans sh mais jai startup.sh: line 2: subaap1/bin/app.sh: Permission denied. Une suggestion monsieur?
  • Oui, jai essayé sh /path/to/shell/script arg et largument a réussi. Cela peut dépendre du shell sh auquel est effectivement lié
  • @Michael – bon point! sh pourrait aller ailleurs que bash.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *