[Risolto]Bash comando gnome-terminal al login

Linguaggi di programmazione: php, perl, python, C, bash, ecc.

[Risolto]Bash comando gnome-terminal al login

Messaggioda Eis5 » martedì 12 febbraio 2019, 8:52

Salute! Da poco mi sono avvicinato al linguaggio bash e nella realizzazione di un piccolo progetto mi sono trovato davanti dei dettagli che non capisco.
Voglio programmare un file .sh in modo tale che ad ogni login si apre un terminale con un messaggio, ad esempio una lista delle cose da fare oggi.
Ho creato due file .sh; uno è nella home, si chiama start.sh e contiene il seguente codice:
Codice: Seleziona tutto
#!/bin/bash
#Da qui chiamo un secondo file .sh dove è contenuta la lista di cose da fare oggi

gnome-terminal -x sh -c "/home/Scrivania/script2"


Il secondo file, script2.sh, è sulla scrivania (vedi percorso nel file .sh precedente) e contiene queste poche righe:
Codice: Seleziona tutto
#!/bin/bash
#Questa è la lista di cose da fare oggi

echo - Fai la spesa
echo - Vai dalla nonna
echo - Leggi qualche barzelletta
echo - Deciditi a scegliere il cosplay per LuccaComix
echo - Datti una mossa e cerca una ragazza carina, simpatica e fuori dagli schemi


Entrambi i file sono eseguibili, il primo file è nella lista dei programmi che si avviano all'accensione del pc cosicché quando faccio il login effettivamente al centro del desktop si apre un terminale con scritta la lista di cose da fare oggi.
I dettagli che non capisco sono due:
1. Dopo il login nel terminale aperto c'è una notifica bianca nella parte superiore che copre una parte dell'output, la scritta recita "Il processo figlio si è concluso normalmente con lo stato 0." con a fianco il tasto da cliccare "Riavvia". Sostanzialmente mi viene notificato che il tutto è stato eseguito con successo e senza errore, il che va bene ma la domanda è se si può nascondere questa notifica...?
2. Se avvio il primo file .sh da terminale, nel terminale da dove lancio il comando "./start.sh" si apre una seconda scheda con l'output che voglio e con la solita notifica bianca fastidiosa, ma nella prima scheda del terminale viene scritto
Codice: Seleziona tutto
# L'opzione «-x» è deprecata e potrebbe essere rimossa in una futura versione del terminale di GNOME.
# Usare «-- » per terminare le opzioni e mettere la riga di comando da eseguire dopo di esso.

È tutto normale oppure dovrei fare qualcosa per eliminare questi due output?
Inizialmente pensavo di aggirare i due problemi facendo comparire la lista delle cose da fare non più su un terminale ma direttamente su un file di testo però ecco... Non saprei proprio come fare.
Ovviamente sono aperto a migliorie qualora se ne potessero fare.
Ultima modifica di Eis5 il mercoledì 13 febbraio 2019, 1:12, modificato 2 volte in totale.
Avatar utente
Eis5
Prode Principiante
 
Messaggi: 44
Iscrizione: luglio 2016
Desktop: Legno di ciliegio
Distribuzione: Ubuntu

Re: Bash comando gnome-terminal al login

Messaggioda UbuNuovo » martedì 12 febbraio 2019, 10:43

Prova a quotare tutto dopo '-c' e, visto che nello script richiami l'interprete Bash, usa quello non Sh. Prova:
Codice: Seleziona tutto
gnome-terminal -x bash -c "$HOME/Scrivania/script2.sh"
Nel caso in cui sia il primo a rispondere ad una richiesta di aiuto...chiunque abbia una soluzione migliore o anche solo diversa dalla mia è incoraggiato ad intervenire liberamente senza inviarmi alcun messaggio privato. In programmazione è basilare sapere che si può ottenere il medesimo risultato utilizzando metodi diversi.
Avatar utente
UbuNuovo
Imperturbabile Insigne
Imperturbabile Insigne
 
Messaggi: 3216
Iscrizione: dicembre 2009
Desktop: Mate
Distribuzione: Ubuntu 14.04
Sesso: Maschile

Re: Bash comando gnome-terminal al login

Messaggioda Eis5 » martedì 12 febbraio 2019, 16:21

Riguardo l'interprete ho cambiato da "sh" a "bash" come mi hai suggerito, per quotare tutto dopo '-c' non l'avevo già fatto? O probabilmente non ti ho capito io...?
Ad ogni modo ho inserito il codice che mi hai suggerito ma l'output rimane sempre lo stesso in entrambi i terminali
Allegati
Schermata 2019-02-12(2).jpg
Schermata 2019-02-12.jpg
Avatar utente
Eis5
Prode Principiante
 
Messaggi: 44
Iscrizione: luglio 2016
Desktop: Legno di ciliegio
Distribuzione: Ubuntu

Re: Bash comando gnome-terminal al login

Messaggioda UbuNuovo » martedì 12 febbraio 2019, 16:52

No, prima non era quotato e non c'era nemmeno il nome dello script da richiamare (il path finiva con Scrivania), hai modificato il post.
Ho fatto ora una prova pratica e non mi compare alcun messaggio; per ora non mi viene in mente niente di utile.
Aspettiamo qualche altro parere.
Nel caso in cui sia il primo a rispondere ad una richiesta di aiuto...chiunque abbia una soluzione migliore o anche solo diversa dalla mia è incoraggiato ad intervenire liberamente senza inviarmi alcun messaggio privato. In programmazione è basilare sapere che si può ottenere il medesimo risultato utilizzando metodi diversi.
Avatar utente
UbuNuovo
Imperturbabile Insigne
Imperturbabile Insigne
 
Messaggi: 3216
Iscrizione: dicembre 2009
Desktop: Mate
Distribuzione: Ubuntu 14.04
Sesso: Maschile

Re: Bash comando gnome-terminal al login

Messaggioda nuzzopippo » martedì 12 febbraio 2019, 17:11

Giusto per ... e se mettesse lo script in attesa? qualcosa del genere :
Codice: Seleziona tutto
#!/bin/bash
#Questa è la lista di cose da fare oggi

echo - Fai la spesa
echo - Vai dalla nonna
echo - Leggi qualche barzelletta
echo - Deciditi a scegliere il cosplay per LuccaComix
echo - Datti una mossa e cerca una ragazza carina, simpatica e fuori dagli schemi
echo "\nPremi [INVIO] per terminare"
read tanto_pe_campa
echo "Ciao, ciao ;)"


Lo script rimarrebbe in attesa dell'input utente e non credo comparirebbe quella notifica.

[Edit] Provato da terminale l'avvio dello script (lista.sh), in effetti da risposta analoga a quanto indicato dallo OP, ciò malgrado la guida, funziona il comando :
Codice: Seleziona tutto
 gnome-terminal -e ~/test/lista.sh

(test è dove ho inserito lo script dello OP) ma il "nuovo" terminale compare un attimo e scompare immediatamente, provata la versione con la "attesa" e rimane aperto.
Comunque, anche per l'opzione -e viene presentata una comunicazione di obsolescenza :
Codice: Seleziona tutto
# L'opzione «-e» è deprecata e potrebbe essere rimossa in una futura versione del terminale di GNOME.
# Usare «-- » per terminare le opzioni e mettere la riga di comando da eseguire dopo di esso.


Nessun messaggio comnpare dando il comando così :
Codice: Seleziona tutto
NzP:~$ gnome-terminal -- ~/test/lista.sh
NzP:~$

e lo script viene avviato, senza l'attesa di input però non si fa in tempo a vederlo.
Ultima modifica di nuzzopippo il martedì 12 febbraio 2019, 17:30, modificato 1 volta in totale.
Avatar utente
nuzzopippo
Entusiasta Emergente
Entusiasta Emergente
 
Messaggi: 1204
Iscrizione: ottobre 2006

Re: Bash comando gnome-terminal al login

Messaggioda UbuNuovo » martedì 12 febbraio 2019, 17:27

Il problema non è la chiusura del terminale a fine programma; per evitarlo senza usare 'read' nello script secondario, basta aggiungere 'bash' come ultimo comando nel primo script, tipo:
Codice: Seleziona tutto
gnome-terminal -x bash -c "$HOME/Scrivania/script2.sh;echo \"La mia home e è $HOME\";bash"
Nel caso in cui sia il primo a rispondere ad una richiesta di aiuto...chiunque abbia una soluzione migliore o anche solo diversa dalla mia è incoraggiato ad intervenire liberamente senza inviarmi alcun messaggio privato. In programmazione è basilare sapere che si può ottenere il medesimo risultato utilizzando metodi diversi.
Avatar utente
UbuNuovo
Imperturbabile Insigne
Imperturbabile Insigne
 
Messaggi: 3216
Iscrizione: dicembre 2009
Desktop: Mate
Distribuzione: Ubuntu 14.04
Sesso: Maschile

Re: Bash comando gnome-terminal al login

Messaggioda nuzzopippo » martedì 12 febbraio 2019, 17:44

Sei troppo svelto @Ubunuovo, hai risposto mentre editavo la mia precedente risposta :)

UbuNuovo Immagine ha scritto:Il problema non è la chiusura del terminale a fine programma; per evitarlo senza usare 'read' nello script secondario, basta aggiungere 'bash' come ultimo comando nel primo script, tipo:
Codice: Seleziona tutto
gnome-terminal -x bash -c "$HOME/Scrivania/script2.sh;echo \"La mia home e è $HOME\";bash"


Questa non la sapevo (una delle tante, purtroppo).
Copiata ed adattata ha un effetto "particolare" mi apre una nuova scheda di terminale,[Edit] Non una nuova finestra,[/Edit] l'ho lanciata un paio di volte prima di rendermene conto ... singolare ed interessante.
Ultima modifica di nuzzopippo il martedì 12 febbraio 2019, 17:47, modificato 1 volta in totale.
Avatar utente
nuzzopippo
Entusiasta Emergente
Entusiasta Emergente
 
Messaggi: 1204
Iscrizione: ottobre 2006

Re: Bash comando gnome-terminal al login

Messaggioda UbuNuovo » martedì 12 febbraio 2019, 17:47

Sì, è fatto per eseguire il secondo script in un altra finestra.
Potrebbe provare con '-e', così:
Codice: Seleziona tutto
gnome-terminal -e "bash -c \"$HOME/Scrivania/script2.sh;exec bash\""


Non mi viene in mente come a me e a te funzioni e a lui no.

edit: @Nuzzopippo: non avevo visto la seconda parte del tuo messaggio.
Allora probabilmente dipende dalla versione di bash, la mia probabilmente è più vecchia; è
Codice: Seleziona tutto
 8-) bash --version
GNU bash, versione 4.3.11(1)-release (x86_64-pc-linux-gnu)
Nel caso in cui sia il primo a rispondere ad una richiesta di aiuto...chiunque abbia una soluzione migliore o anche solo diversa dalla mia è incoraggiato ad intervenire liberamente senza inviarmi alcun messaggio privato. In programmazione è basilare sapere che si può ottenere il medesimo risultato utilizzando metodi diversi.
Avatar utente
UbuNuovo
Imperturbabile Insigne
Imperturbabile Insigne
 
Messaggi: 3216
Iscrizione: dicembre 2009
Desktop: Mate
Distribuzione: Ubuntu 14.04
Sesso: Maschile

Re: Bash comando gnome-terminal al login

Messaggioda nuzzopippo » martedì 12 febbraio 2019, 18:00

credo proprio Tu abbia ragione
Codice: Seleziona tutto
NzP:~$ bash --version
GNU bash, versione 4.4.19(1)-release (x86_64-pc-linux-gnu)
Copyright (C) 2016 Free Software Foundation, Inc.
Licenza GPLv3+: GNU GPL versione 3 o successiva <http://gnu.org/licenses/gpl.html>
Avatar utente
nuzzopippo
Entusiasta Emergente
Entusiasta Emergente
 
Messaggi: 1204
Iscrizione: ottobre 2006

Re: Bash comando gnome-terminal al login

Messaggioda Eis5 » martedì 12 febbraio 2019, 18:03

@ubuNuovo
Ho modificato solo il percorso incompleto del primo codice che ho inserito e dato al secondo bash il nome che hai usato tu nella prima risposta, qualora domani qualcuno trovasse utile il post almeno il codice è corretto
Utilizzando il tuo ultimo codice
UbuNuovo ha scritto:Sì, è fatto per eseguire il secondo script in un altra finestra.
Potrebbe provare con '-e', così:
Codice: Seleziona tutto
gnome-terminal -e "bash -c \"$HOME/Scrivania/script2.sh;exec bash\""


Non mi viene in mente come a me e a te funzioni e a lui no.

l'output "bianco" sparisce però rimangono gli output di deprecazione, rimozione futura e compagnia bella ma se utilizzo
Codice: Seleziona tutto
gnome-terminal -- ~/test/lista.sh

nel primo file e aggiungo la chiusura del terminale da tastiera nel secondo, semplicemente per un fatto di comodità, ottengo il terminale che si apre con la lista di cose da fare senza alcun tipo di output che copre le scritte del terminale o che minaccia la futura versione di GNOME

Così:
Codice: Seleziona tutto
#!/bin/bash
#Da qui chiamo un secondo file .sh dove è contenuta la lista di cose da fare oggi

#gnome-terminal -x bash -c "$HOME/Scrivania/forum2"
#gnome-terminal -x bash -c "$HOME/Scrivania/forum2;echo \"La mia home e è $HOME\";bash"
#gnome-terminal -e "bash -c \"$HOME/Scrivania/forum2;exec bash\""

gnome-terminal -- ~/Scrivania/script2


Codice: Seleziona tutto
#!/bin/bash
#Questa è la lista di cose da fare oggi

echo - Fai la spesa
echo - Vai dalla nonna
echo - Leggi qualche barzelletta
echo - Deciditi a scegliere il cosplay per LuccaComix
echo - Datti una mossa e cerca una ragazza carina, simpatica e fuori dagli schemi
echo
echo "Premi [INVIO] per terminare"
read tanto_pe_campa
echo "Ciao, ciao ;)"


Per scrupolo la versione del mio bash
Codice: Seleziona tutto
eis@Frenki:~/Scrivania$ bash --version
GNU bash, versione 4.4.19(1)-release (x86_64-pc-linux-gnu)
Copyright (C) 2016 Free Software Foundation, Inc.
Licenza GPLv3+: GNU GPL versione 3 o successiva <http://gnu.org/licenses/gpl.html>

This is free software; you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.



Grazie ad entrambi ubuNuovo e nuzzopippo :)
Avatar utente
Eis5
Prode Principiante
 
Messaggi: 44
Iscrizione: luglio 2016
Desktop: Legno di ciliegio
Distribuzione: Ubuntu

Re: Bash comando gnome-terminal al login

Messaggioda UbuNuovo » martedì 12 febbraio 2019, 19:27

Scusate ho dovuto assentarmi all'improvviso.
Ho provato ora il comando del tipo:
Codice: Seleziona tutto
gnome-terminal -- ~/Scrivania/script2

e sembra funzionare regolarmente.
@Eis5: Se ho capito bene dovrebbe funzionare a tutti./?
Nel caso in cui sia il primo a rispondere ad una richiesta di aiuto...chiunque abbia una soluzione migliore o anche solo diversa dalla mia è incoraggiato ad intervenire liberamente senza inviarmi alcun messaggio privato. In programmazione è basilare sapere che si può ottenere il medesimo risultato utilizzando metodi diversi.
Avatar utente
UbuNuovo
Imperturbabile Insigne
Imperturbabile Insigne
 
Messaggi: 3216
Iscrizione: dicembre 2009
Desktop: Mate
Distribuzione: Ubuntu 14.04
Sesso: Maschile

Re: Bash comando gnome-terminal al login

Messaggioda Eis5 » mercoledì 13 febbraio 2019, 1:12

Si funzionano entrambe le due soluzioni, metto risolto
Grazie ancora UbuNuovo e nuzzopippo
Avatar utente
Eis5
Prode Principiante
 
Messaggi: 44
Iscrizione: luglio 2016
Desktop: Legno di ciliegio
Distribuzione: Ubuntu

Re: [Risolto]Bash comando gnome-terminal al login

Messaggioda UbuNuovo » mercoledì 13 febbraio 2019, 1:15

Bene, si impara sempre qualcosa.
Ciaux
Nel caso in cui sia il primo a rispondere ad una richiesta di aiuto...chiunque abbia una soluzione migliore o anche solo diversa dalla mia è incoraggiato ad intervenire liberamente senza inviarmi alcun messaggio privato. In programmazione è basilare sapere che si può ottenere il medesimo risultato utilizzando metodi diversi.
Avatar utente
UbuNuovo
Imperturbabile Insigne
Imperturbabile Insigne
 
Messaggi: 3216
Iscrizione: dicembre 2009
Desktop: Mate
Distribuzione: Ubuntu 14.04
Sesso: Maschile


Torna a Programmazione

Chi c’è in linea

Visualizzano questa sezione: 0 utenti registrati e 4 ospiti