Vyvinul jsem aplikaci Java. Rozdělil jsem aplikaci na 5 dílčích aplikací a vytvořil jsem obálku služby pro každou dílčí aplikaci pomocí shell skriptů:
subaap1/bin/app.sh subaap2/bin/app.sh ...  Nyní chci vytvořit spouštěcí skript startup.sh k provedení všech souhrnných skriptů: 
#!/bin/bash sh subaap1/bin/app.sh start sh subaap2/bin/app.sh start ... Ale když to spustím, dostanu:
Neočekávaný příkaz: start
Jak to mohu opravit?
Komentáře
- Pokud vím, tato chyba pochází z vaší aplikace. Jaký příkaz zadáte, abyste právě spustili subaap1?
Odpovědět
Neměli byste používat sh skript pro spuštění dílčích aplikací.
Stačí použít:
#!/bin/bash subaap1/bin/app.sh start subaap2/bin/app.sh start ... Aktualizováno podle níže uvedených komentářů:
vaše verze by měla fungovat, ale potřebujete vědět, co volá shell sh. Může se stát, že máte špatný shell nebo že oprávnění k vašim aplikacím jsou nesprávná pro prostředí, které se pokoušíte použít.
Komentáře
-  Jste si jisti? bashpředá argumenty skriptu, který ' znovu spuštěno (to ' s čím máshodkazováno); já ' Nevím o jiných skořápkách
- @Michael – projde jim to, pokud použijete sh? Můžeš mít pravdu – prostě to nedělám ' je to tak. Pokud to chci udělat, vždy mě obklopím uvozovkami. Nebo jako tady, jus t remove sh a bash s radostí předpokládá, že řádek je aplikace.
-  Pokusil jsem se spustit subaap1/bin/app.sh startz příkazového řádku a funguje to perfektně. Nyní změním skript shellu bezsh, ale dostal jsemstartup.sh: line 2: subaap1/bin/app.sh: Permission denied. Nějaký návrh, pane?
-  Ano, zkusil jsem sh /path/to/shell/script arga arg to prošel. Mohlo by záležet na tom, se kterým shellemshje vlastně spojeno
- @Michael – dobrá věc! mohl by jít někam jinam než do bash.