• Benvenuti su RaspberryItaly!
Benvenuto ospite! Login Login con Facebook Registrati Login with Facebook


Valutazione discussione:
  • 0 voto(i) - 0 media
  • 1
  • 2
  • 3
  • 4
  • 5

[-]
Tags
in script scrittura problema bash

Problema scrittura script in BASH
#1
Buongiorno a tutti,
non sono un esperto in bash scripting e volevo sottoporvi un quesito...
Sto utilizzando il mio Raspberry per avviare il servizio di Amazon Echo "Alexa AVS" e in contemporanea far girare il software per un magicmirror.

Nello specifico per far partire Alexa ho la necessità di aprire 3 terminali distinti :
1)Companionservice
2)Client java
3)Wakeword

Mentre per il mirror me ne basta uno solo.
Vorrei creare uno script bash capace di rendere automatico il processo ma non ne vengo fuori.
Vi allego quello che mi è venuto in mente di scrivere:



#!/bin/bash


echo "Avvio di ALEXA VOICE ASSISTANT"
cd alexa-avs-sample-app/samples/companionService && npm start
sleep 10

lxterminal -e cd alexa-avs-sample-app/samples/javaclient && mvn exec:exec
sleep 60

lxterminal -e cd alexa-avs-sample-app/samples/wakeWordAgent/src && ./wakeWordAgent -e sensory
sleep 100

echo "Avvio di MagicMirror"
lxterminal -e cd MagicMirror && npm start
done 



In questo modo parte solo il companionservice, vorrei capire come far aprire un nuovo terminale che possa eseguire il comando richiesto.

Grazie in anticipo per l'aiuto!

Giuliano
Risposta
#2
Se non ricordo male, se usi &&, lui attende che il primo comando sia terminato, prima di eseguire il secondo. Usa solo &. Forse non hai bisogno nemmeno degli sleep
Risposta
#3
La doppia & funziona perché nel primo comando va benissimo!
Il problema è che dal secondo comando in poi non va..inizio a dubitare di non poter scrivere lxterminal -e .......per far partire un secondo terminale che esegua il secondo comando


Inviato dal mio iPhone utilizzando Tapatalk
Risposta
#4
prova
Codice:
#!/bin/bash


echo "Avvio di ALEXA VOICE ASSISTANT"
cd alexa-avs-sample-app/samples/companionService && npm start &
sleep 10

lxterminal -e cd alexa-avs-sample-app/samples/javaclient && mvn exec:exec &
sleep 60

lxterminal -e cd alexa-avs-sample-app/samples/wakeWordAgent/src && ./wakeWordAgent -e sensory &
sleep 100

echo "Avvio di MagicMirror"
lxterminal -e cd MagicMirror && npm start &
done

in altre parole ho aggiunto un "&" alla fine delle righe dove esegui un comando e poi vai in sleep.
serve per spedire l'esecuzione di quel comando in background, ho l'impressione che altrimenti aspetti che termini per proseguire (e andare nel primo sleep nel tuo caso)



Coltiva linux, che windows si pianta da solo! (cit.)
Risposta
#5
Provato anche la &, ma niente da fare...il problema è che non apre nuovi terminali per l'esecuzione dal secondo comando in poi..fa tutto sul primo..


Inviato dal mio iPhone utilizzando Tapatalk
Risposta
#6
ma per primo comando intendi questo?
Codice:
cd alexa-avs-sample-app/samples/companionService && npm start

mi permetto di aggiungere che


Codice:
lxterminal -e cd alexa-avs-sample-app/samples/javaclient && mvn exec:exec


credo sia errato perchè manca la path esatta


Codice:
lxterminal -e cd /home/pi/alexa-avs-sample-app/samples/javaclient && mvn exec:exec


forse è più corretto, metti ovviamente il percorso corretto.

altra domanda, ma a che ti serve entrare in quelle cartelle se poi il comando è "mvn" che parte da ovunque nel sistema?



Coltiva linux, che windows si pianta da solo! (cit.)
Risposta
#7
La path l'avevo corretta,hai ragione! Se anche volessi far partire MVN EXEC:EXEC da un nuovo terminale senza spostarmi con cd alexa........comunque il nuovo terminale non viene aperto!


Inviato dal mio iPhone utilizzando Tapatalk
Risposta
#8
no il problema di fondo è che la riga sono due comandi separati

in pratica con la prima parte apri un terminale per entrare in una cartella (lxterminal -e cd alexa-avs-sample-app/samples/companionService) e poi esegui un comando senza aprire nulla (npm start)
come fossero due comandi diversi dati separatamente uno dall'altro

adesso io NON so dove sta npn. parte da una cartella nella tua home? è nelle cartelle di sistema quindi parte da ovunque?
nel secondo caso (più probabile) prova semplicemente mettendo
Codice:
lxterminal -e npm start

se invece fosse il primo caso e la cartella fosse /home/pi/alexa-avs-sample-app/samples/companionService allora
Codice:
lxterminal -e ./home/pi/alexa-avs-sample-app/samples/companionService/npm start
occhio al punto davanti il primo slash

questo vale per la prima "riga"
poi replichi per le successive



Coltiva linux, che windows si pianta da solo! (cit.)
Risposta
  


Vai al forum:


Navigazione: 3 Ospite(i)
Forum con nuovi Post
Forum senza nuovi post
Forum bloccato
Forum Redirect