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? bashtransmettra les arguments au script que vous ' en cours dexécution (que ' est ce à quoi monshest 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 sansshmais jaistartup.sh: line 2: subaap1/bin/app.sh: Permission denied. Une suggestion monsieur?
-  Oui, jai essayé sh /path/to/shell/script arget largument a réussi. Cela peut dépendre du shellshauquel est effectivement lié
- @Michael – bon point! sh pourrait aller ailleurs que bash.