[Risolto]Bash comando gnome-terminal al login

Linguaggi di programmazione: php, perl, python, C, bash e tutti gli altri.
Scrivi risposta
Avatar utente
Eis5
Prode Principiante
Messaggi: 44
Iscrizione: giovedì 28 luglio 2016, 11:00
Desktop: Legno di ciliegio
Distribuzione: Ubuntu

[Risolto]Bash comando gnome-terminal al login

Messaggio da Eis5 »

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, 0:12, modificato 2 volte in totale.
Avatar utente
UbuNuovo
Imperturbabile Insigne
Imperturbabile Insigne
Messaggi: 4446
Iscrizione: sabato 12 dicembre 2009, 20:58
Desktop: Mate
Distribuzione: Ubuntu Mate 22.04.1 LTS
Sesso: Maschile
Contatti:

Re: Bash comando gnome-terminal al login

Messaggio da UbuNuovo »

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"
Salva l'Ucraina! 🇺🇦
Avatar utente
Eis5
Prode Principiante
Messaggi: 44
Iscrizione: giovedì 28 luglio 2016, 11:00
Desktop: Legno di ciliegio
Distribuzione: Ubuntu

Re: Bash comando gnome-terminal al login

Messaggio da Eis5 »

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
UbuNuovo
Imperturbabile Insigne
Imperturbabile Insigne
Messaggi: 4446
Iscrizione: sabato 12 dicembre 2009, 20:58
Desktop: Mate
Distribuzione: Ubuntu Mate 22.04.1 LTS
Sesso: Maschile
Contatti:

Re: Bash comando gnome-terminal al login

Messaggio da UbuNuovo »

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.
Salva l'Ucraina! 🇺🇦
Avatar utente
nuzzopippo
Entusiasta Emergente
Entusiasta Emergente
Messaggi: 1627
Iscrizione: giovedì 12 ottobre 2006, 11:34

Re: Bash comando gnome-terminal al login

Messaggio da nuzzopippo »

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, 16:30, modificato 1 volta in totale.
Fatti non foste a viver come bruti ...
Avatar utente
UbuNuovo
Imperturbabile Insigne
Imperturbabile Insigne
Messaggi: 4446
Iscrizione: sabato 12 dicembre 2009, 20:58
Desktop: Mate
Distribuzione: Ubuntu Mate 22.04.1 LTS
Sesso: Maschile
Contatti:

Re: Bash comando gnome-terminal al login

Messaggio da UbuNuovo »

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"
Salva l'Ucraina! 🇺🇦
Avatar utente
nuzzopippo
Entusiasta Emergente
Entusiasta Emergente
Messaggi: 1627
Iscrizione: giovedì 12 ottobre 2006, 11:34

Re: Bash comando gnome-terminal al login

Messaggio da nuzzopippo »

Sei troppo svelto @Ubunuovo, hai risposto mentre editavo la mia precedente risposta :)
UbuNuovo [url=https://forum.ubuntu-it.org/viewtopic.php?p=5114698#p5114698][img]https://forum.ubuntu-it.org/images/icons/icona-cita.gif[/img][/url] 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, 16:47, modificato 1 volta in totale.
Fatti non foste a viver come bruti ...
Avatar utente
UbuNuovo
Imperturbabile Insigne
Imperturbabile Insigne
Messaggi: 4446
Iscrizione: sabato 12 dicembre 2009, 20:58
Desktop: Mate
Distribuzione: Ubuntu Mate 22.04.1 LTS
Sesso: Maschile
Contatti:

Re: Bash comando gnome-terminal al login

Messaggio da UbuNuovo »

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)
Salva l'Ucraina! 🇺🇦
Avatar utente
nuzzopippo
Entusiasta Emergente
Entusiasta Emergente
Messaggi: 1627
Iscrizione: giovedì 12 ottobre 2006, 11:34

Re: Bash comando gnome-terminal al login

Messaggio da nuzzopippo »

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>
Fatti non foste a viver come bruti ...
Avatar utente
Eis5
Prode Principiante
Messaggi: 44
Iscrizione: giovedì 28 luglio 2016, 11:00
Desktop: Legno di ciliegio
Distribuzione: Ubuntu

Re: Bash comando gnome-terminal al login

Messaggio da Eis5 »

@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
UbuNuovo
Imperturbabile Insigne
Imperturbabile Insigne
Messaggi: 4446
Iscrizione: sabato 12 dicembre 2009, 20:58
Desktop: Mate
Distribuzione: Ubuntu Mate 22.04.1 LTS
Sesso: Maschile
Contatti:

Re: Bash comando gnome-terminal al login

Messaggio da UbuNuovo »

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./?
Salva l'Ucraina! 🇺🇦
Avatar utente
Eis5
Prode Principiante
Messaggi: 44
Iscrizione: giovedì 28 luglio 2016, 11:00
Desktop: Legno di ciliegio
Distribuzione: Ubuntu

Re: Bash comando gnome-terminal al login

Messaggio da Eis5 »

Si funzionano entrambe le due soluzioni, metto risolto
Grazie ancora UbuNuovo e nuzzopippo
Avatar utente
UbuNuovo
Imperturbabile Insigne
Imperturbabile Insigne
Messaggi: 4446
Iscrizione: sabato 12 dicembre 2009, 20:58
Desktop: Mate
Distribuzione: Ubuntu Mate 22.04.1 LTS
Sesso: Maschile
Contatti:

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

Messaggio da UbuNuovo »

Bene, si impara sempre qualcosa.
Ciaux
Salva l'Ucraina! 🇺🇦
Scrivi risposta

Ritorna a “Programmazione”

Chi c’è in linea

Visualizzano questa sezione: 0 utenti iscritti e 11 ospiti