Come eseguire sh dal file sh

Ho sviluppato unapplicazione Java. Ho diviso lapplicazione in 5 applicazioni secondarie e ho creato un wrapper di servizio per ciascuna applicazione secondaria utilizzando script di shell:

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

Ora voglio creare uno script di avvio startup.sh per eseguire tutti gli script wrapper:

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

Ma quando lo eseguo ottengo:

Comando imprevisto: start

Come posso risolvere questo problema?

Commenti

  • Per quanto ne so, questo errore proviene dalla tua applicazione. Quale comando digiti per eseguire semplicemente subaap1?

Risposta

Non dovresti aver bisogno di usare sh in il tuo script per eseguire le tue applicazioni secondarie.

Usa semplicemente:

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

Aggiornato come da commenti di seguito:

la tua versione dovrebbe funzionare, tuttavia devi sapere quale shell sh sta chiamando. È possibile che tu abbia la shell sbagliata o che le autorizzazioni sulle tue app non siano corrette per la shell che stai tentando di utilizzare.

Commenti

  • Sei sicuro? bash passerà gli argomenti allo script che ' è in esecuzione (che ' è il link simbolico del mio sh); io non ' non so di altre shell
  • @Michael – le passerà attraverso se usi sh? Potresti avere ragione – io semplicemente non ' in questo modo. Se voglio farlo, racchiudo sempre il mio tra virgolette. O come qui, jus t rimuovere sh e bash è felice di presumere che la riga sia unapplicazione.
  • Ho provato a eseguire subaap1/bin/app.sh start dalla riga di comando e funziona perfettamente. Ora cambio lo script della shell senza sh ma ho startup.sh: line 2: subaap1/bin/app.sh: Permission denied. Qualche suggerimento, signore?
  • Sì, ho provato sh /path/to/shell/script arg e largomento ce lha fatta. Potrebbe dipendere da quale shell sh è effettivamente collegata
  • @Michael – buon punto! sh potrebbe andare in un posto diverso da bash.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *