Am dezvoltat o aplicație Java. Am împărțit aplicația în 5 subaplicări și am creat un pachet de servicii pentru fiecare aplicație secundară folosind scripturi shell:
subaap1/bin/app.sh subaap2/bin/app.sh ...  Acum vreau să creez un script de pornire startup.sh pentru a executa toate scripturile de împachetare: 
#!/bin/bash sh subaap1/bin/app.sh start sh subaap2/bin/app.sh start ... Dar când îl rulez, primesc:
Comandă neașteptată: start
Cum pot remedia acest lucru?
Comentarii
- Din câte îmi dau seama, această eroare provine din aplicația dvs. Ce comandă tastați pentru a rula doar subaap1?
Răspuns
Nu ar trebui să utilizați sh în scriptul dvs. pentru a rula aplicațiile secundare.
Folosiți doar:
#!/bin/bash subaap1/bin/app.sh start subaap2/bin/app.sh start ... Actualizat conform comentariilor de mai jos:
versiunea dvs. ar trebui să funcționeze, totuși trebuie să știți la ce apel shell Sh. Poate că aveți un shell greșit sau permisiunile aplicațiilor dvs. sunt incorecte pentru shell-ul pe care încercați să îl utilizați.
Comentarii
-  Sunteți sigur? bashva transmite argumentele către scriptul pe care ' se execută (că ' este ceea cesheste asociat); nu ' nu știu despre alte cochilii
- @Michael – le va trece dacă folosiți sh? Ați putea avea dreptate – nu
nu fac Îl înconjoară întotdeauna pe ghilimele, dacă vreau să fac asta. Sau ca aici, jus Eliminați sh și bash este încântat să presupună că linia este o aplicație.
subaap1/bin/app.sh start din linia de comandă și funcționează perfect. Acum schimb scriptul shell fără sh, dar am primit startup.sh: line 2: subaap1/bin/app.sh: Permission denied. Aveți vreo sugestie, domnule? sh /path/to/shell/script arg și argumentul a reușit. S-ar putea să depindă de ce shell sh este de fapt legat deși