Hur man kör sh från sh-fil

Jag utvecklade ett Java-program. Jag delade in applikationen i 5 underapplikationer och skapade en serviceomslag till varje underapplikation med hjälp av skalskript:

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

Nu vill jag skapa ett startskript startup.sh för att köra alla omslagsskript:

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

Men när jag kör det får jag:

Oväntat kommando: start

Hur kan jag åtgärda detta?

Kommentarer

  • Såvitt jag kan säga kommer det felet från din applikation. Vilket kommando skriver du för att bara köra subaap1?

Svar

Du behöver inte använda sh i ditt skript för att köra dina underapplikationer.

Använd bara:

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

Uppdateras enligt kommentarerna nedan:

din version ska fungera, men du måste veta vad shell sh ringer. Det kan vara att du har fel skal eller att behörigheterna i dina appar är felaktiga för det skal du försöker använda.

Kommentarer

  • Är du säker? bash skickar argumenten till skriptet du ' körs igen (att ' är vad min sh är länkad till); jag don ' vet inte om andra skal
  • @Michael – kommer det att passera dem om du använder sh? Du kan ha rätt – jag gör bara ' Jag omger mig alltid i citat om jag vill göra det. Eller som här, ju t ta bort sh och bash antar gärna att raden är en applikation.
  • Jag har försökt att köra subaap1/bin/app.sh start från kommandoraden och det fungerar perfekt. Nu ändrar jag skalskriptet utan sh men jag fick startup.sh: line 2: subaap1/bin/app.sh: Permission denied. Något förslag sir?
  • Ja, jag försökte sh /path/to/shell/script arg och arg klarade det. Det kan bero på vilket skal sh som faktiskt är länkat till dock
  • @Michael – bra poäng! sh kunde gå någon annanstans än bash.

Lämna ett svar

Din e-postadress kommer inte publiceras. Obligatoriska fält är märkta *