Sh futtatása az sh fájlból

Java alkalmazást fejlesztettem. Az alkalmazást 5 alalkalmazásra bontottam, és shell-szkriptek segítségével létrehoztam egy szolgáltatáscsomagolót az egyes alalkalmazásokhoz:

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

Most szeretnék létrehozni egy indítási parancsfájlt startup.sh az összes csomagoló szkript végrehajtásához:

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

De amikor futtatom, a következőt kapom:

Váratlan parancs: indítás

Hogyan tudom ezt kijavítani?

Megjegyzések

  • Amennyire meg tudom mondani, ez a hiba az alkalmazásából származik. Milyen parancsot ír be az subaap1 futtatásához?

Válasz

Nem kell sh-t használni szkripted az alalkalmazások futtatásához.

Csak a következőt használja:

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

Frissítve az alábbi megjegyzések szerint:

a verziójának működnie kell, azonban tudnia kell, hogy mit hív a sh sh. Lehet, hogy rossz a shell vagy az alkalmazások engedélyei nem megfelelőek a használni kívánt héjhoz.

Megjegyzések

  • Biztos vagy benne? bash továbbítja az argumentumokat a szkriptnek, amelyet ' újra fut (ez ' s, amihez a sh szimbólum kapcsolódik); nem ' nem tudok más héjakról
  • @Michael – átengedi őket, ha sh-t használsz? Igazad lehet – csak nem ' nem mindig így idézem idézeteket, ha ezt akarom tenni. Vagy mint itt, jus ne távolítsd el az sh-t, és bash örömmel feltételezi, hogy a sor alkalmazás.
  • Megpróbáltam végrehajtani a subaap1/bin/app.sh start parancssort, és tökéletesen működik. Most megváltoztatom a shell parancsfájlt sh nélkül, de megkaptam a startup.sh: line 2: subaap1/bin/app.sh: Permission denied fájlt. Van valami javaslata, uram?
  • Igen, kipróbáltam a sh /path/to/shell/script arg t, és az arg végigment. Lehet, hogy attól függ, hogy a sh héj valóban összekapcsolódik-e
  • @Michael – jó! sh máshová mehetett, mint a bash.

Vélemény, hozzászólás?

Az email címet nem tesszük közzé. A kötelező mezőket * karakterrel jelöltük