[Risolto] nuovo terminale con PS1 personalizzato

Personalizzazione grafica del sistema: icone, temi, sfondi, suoni, eccetera.
Avatar utente
london3
Scoppiettante Seguace
Scoppiettante Seguace
Messaggi: 559
Iscrizione: domenica 19 gennaio 2014, 16:22
Desktop: ubuntu:GNOME
Distribuzione: Ubuntu 22.04.1 LTS

[Risolto] nuovo terminale con PS1 personalizzato

Messaggio da london3 »

Codice: Seleziona tutto

$ PS1="X $ "
X $ PS1="Y $ " bash
$
Io invece mi sarei aspettato questo

Codice: Seleziona tutto

$ PS1="X $ "
X $ PS1="Y $ " bash
Y $
C'è una soluzione?
Ultima modifica di london3 il mercoledì 7 agosto 2019, 13:01, modificato 1 volta in totale.
Computer: Lenovo ThinkPad L480
Avatar utente
UbuNuovo
Imperturbabile Insigne
Imperturbabile Insigne
Messaggi: 4457
Iscrizione: sabato 12 dicembre 2009, 20:58
Desktop: Mate
Distribuzione: Ubuntu Mate 22.04.1 LTS
Sesso: Maschile
Contatti:

Re: nuovo terminale con PS1 personalizzato

Messaggio da UbuNuovo »

Non si capisce qual è il problema e/o cosa vuoi ottenere.
Salva l'Ucraina! 🇺🇦
Avatar utente
london3
Scoppiettante Seguace
Scoppiettante Seguace
Messaggi: 559
Iscrizione: domenica 19 gennaio 2014, 16:22
Desktop: ubuntu:GNOME
Distribuzione: Ubuntu 22.04.1 LTS

Re: nuovo terminale con PS1 personalizzato

Messaggio da london3 »

Quando avvio un sub terminale vorrei avere un indicatore di profondità, ad es.

Codice: Seleziona tutto

$ bash
*$ bash
**$ bash
Guarda inoltre questo esempio
https://youtu.be/pcl4P_-vo_4?t=883
quando l'utente digita gs compare una saetta
Computer: Lenovo ThinkPad L480
Avatar utente
UbuNuovo
Imperturbabile Insigne
Imperturbabile Insigne
Messaggi: 4457
Iscrizione: sabato 12 dicembre 2009, 20:58
Desktop: Mate
Distribuzione: Ubuntu Mate 22.04.1 LTS
Sesso: Maschile
Contatti:

Re: nuovo terminale con PS1 personalizzato

Messaggio da UbuNuovo »

Ma con cosa vedi i livelli di esecuzione di bash?
Come prima idea ho pensato di usare 'pstree'; funziona se si ha un solo terminale aperto, ma se si apre un altro terminale e vi si eseguono più istanze di bash, il numero di livelli aumenta.

La mia prova:
metto in fondo a ~/.bashrc:

Codice: Seleziona tutto

PS1="\$(pstree -A | grep -o 'bash---' | sed 's/bash---/*/' | xargs | tr -d ' ') $ "
apro un terminale e provo; guarda anche i commenti:

Codice: Seleziona tutto

* $ 
* $ bash
** $ 
** $ bash
*** $ # ok ma ora apro un altro terminale ed eseguo più bash e poi torno
***** $ # sono tornato! Come si vede il conteggio include tutte le esecuzioni multiple di bash!
***** $ 
Bisognerebbe usare un altro strumento... forse... greppare ps in base al primo processo del terminale in uso (dovrei riguardarmi le opzioni di ps).
Aspetto una risposta, se non ci sono altre idee, quando posso, faccio qualche prova.
Salva l'Ucraina! 🇺🇦
Avatar utente
london3
Scoppiettante Seguace
Scoppiettante Seguace
Messaggi: 559
Iscrizione: domenica 19 gennaio 2014, 16:22
Desktop: ubuntu:GNOME
Distribuzione: Ubuntu 22.04.1 LTS

Re: nuovo terminale con PS1 personalizzato

Messaggio da london3 »

grazie comunque
Computer: Lenovo ThinkPad L480
Avatar utente
UbuNuovo
Imperturbabile Insigne
Imperturbabile Insigne
Messaggi: 4457
Iscrizione: sabato 12 dicembre 2009, 20:58
Desktop: Mate
Distribuzione: Ubuntu Mate 22.04.1 LTS
Sesso: Maschile
Contatti:

Re: nuovo terminale con PS1 personalizzato

Messaggio da UbuNuovo »

Ho provato ora con 'ps -d' e funziona! Ogni terminale ha un conteggio indipendente dagli altri.
Basta mettere in fondo a ~/.bashrc:

Codice: Seleziona tutto

# profondità bash in PS1
term_ps1=$(tty | grep -Po '.*/\K.*?/[0-9]+$')
PS1="\$(ps -d | grep "$term_ps1.*bash" | grep -o 'bash' | sed 's/bash/*/' | xargs | tr -d ' ' ) $ "
ora i livelli, nei vari terminali, sono indipendenti.

Codice: Seleziona tutto

* $ bash
** $ 
** $ bash
*** $ 
*** $ bash
**** $ 
**** $ exit
exit
*** $ 
*** $ exit
exit
** $ exit
exit
* $ 
edit: ho eliminato un grep usando grep -P

Codice: Seleziona tutto

# profondità bash in PS1
term_ps1=$(tty | grep -Po '.*/\K.*?/[0-9]+$')
PS1="\$(ps -d | grep -Po \"$term_ps1.*\Kbash$\" | sed 's/bash/*/' | xargs | tr -d ' ') $ "
Salva l'Ucraina! 🇺🇦
Avatar utente
london3
Scoppiettante Seguace
Scoppiettante Seguace
Messaggi: 559
Iscrizione: domenica 19 gennaio 2014, 16:22
Desktop: ubuntu:GNOME
Distribuzione: Ubuntu 22.04.1 LTS

Re: nuovo terminale con PS1 personalizzato

Messaggio da london3 »

grazie ancora
Computer: Lenovo ThinkPad L480
Avatar utente
UbuNuovo
Imperturbabile Insigne
Imperturbabile Insigne
Messaggi: 4457
Iscrizione: sabato 12 dicembre 2009, 20:58
Desktop: Mate
Distribuzione: Ubuntu Mate 22.04.1 LTS
Sesso: Maschile
Contatti:

Re: nuovo terminale con PS1 personalizzato

Messaggio da UbuNuovo »

Per quanto riguarda GhostScript pensavo che dipendesse da PS2 invece no, deve avere un suo prompt; ho provato ad impostarlo, ma viene visualizzato solo al primo Invio dopo diventa 'GS>'.
Se vuoi usare il fulmine puoi mettere direttamente il simbolo ⚡, il codice UTF è \u26A1

Se consideri la discussione risolta metti [Risolto] nel titolo del primo post
Salva l'Ucraina! 🇺🇦
Scrivi risposta

Ritorna a “Personalizzazione dell'ambiente desktop”

Chi c’è in linea

Visualizzano questa sezione: pep66 e 3 ospiti