On 27/05/2021 21.39, Joe wrote:
[...]
> Se fosse come scrivi, non esisterebbe ~/.bashrc.
Non hai capito niente di quello che ho scritto.
> Popolarlo anche con le variabili d'ambiente desiderate è una scelta
> consentita proprio perché questi file di configurazione esistono.
Ho scritto il contrario?
Che non si deve usare .bashrc per
configurare?
Ho scritto che "prima di cambiare una
variabile (di sistema) va verificato
se esiste ed il contenuto".
Non ho neanche scritto che non si deve
cambiare: si puo` cambiare, ma deve
essere chiaro cosa si stia facendo.
> Ovviamente come tutte le cose va fatto per uno scopo e con cognizione.
Appunto!
> Non è detto che proprio grazie alla tua impostazione (non importa che
> sia quella copiata da /etc/bashrc della tua distribuzione) tu non possa
> incappare in un altro comportamento inatteso, magari confrontandoti con
> una situazione come quella del topic corrente, fine a se stessa e dalle
> finalità inesistenti.
Questa e` un'affermazione senza senso.
Ridefinire una variabile di sistema senza
preoccuparsi di cosa vi sia e` un rischio.
Fare il contrario non lo e`, perche` si
presuppone che il default sia de-fault.
Il topic corrente non fine a se stesso, e`
valido e si risolve in maniera corretta,
che *non* e` assegnare staticamente PS1
in .bashrc od altrove.
> In altre parole se io voglio assicurarmi di lanciare bash in modo che
> erediti PS1 definito da riga di comando, posso tranquillamente usare
>
> PS1=quellochevoglio bash --norc
>
> Qualsiasi sia il ~/.bashrc.
> La soluzione corretta formalmente è questa. Anche se poi porta a
> perdersi per strada altre personalizzazioni che abbiamo di default,
> ma questo è un altro discorso.
No, questa e` la soluzione di chi si ricorda
che in .bashrc tocca quella variabile, oppure
di chi non ha idea di cosa abbia fatto in .bashrc.
Senza contare che in .bashrc potrebbe esservi
altro che serve (ma cosa lo scrivo a fare?) e
quindi non si puo` saltare...
> Definire PS1 come hai tu, va bene, risolve la situazione, ma se io
> invece volessi avere sempre PS1 di default? E cercassi proprio di
Funziona anche i quel caso, che discorsi sono.
> ottenere la sovrascrittura di qualsiasi valore PS1 definito in altro
> modo, allora il tuo bashrc non andrebbe bene. E non perché c'è un
> errore nel tuo bashrc, ma perché per mangiare la minestra non puoi
> usare la forchetta.
Questo non ha senso.
Il fatto che PS1 esista come _variabile_ vuol
dire che si puo` cambiare.
Il caso "anomalo" e` bloccare questo cambio,
cioe` renderla una costante, cosa che si puo`
sempre fare, ma e` un caso *anomalo*.
Altrimenti non vi sarebbe una variabile o
sarebbe piu` difficile cambiarla.
> Non ci sono errori, ci sono destinazioni d'uso e soluzioni che
> conseguono l'obiettivo.
La tua *non* e`, per tua stessa ammissione,
una destinazione d'uso e soluzione che
consegue un obiettivo.
Non hai fissato PS1 perche` ti serviva cosi`,
semplicemente non hai pensato alle conseguenze.
Definire una variabile di sistema senza controllare
per poi accorgersi che qualcosa non va come dovrebbe
indica un problema.
Soprattutto per il fatto che ti sei accorto *dopo*
del motivo per cui l'assegnazione non funzionava.
Il modo *corretto* e` controllare, se non lo fai,
_senza_ ricordartene, hai un errore nel codice.
E siccome dopo un mese nessuno si ricorda piu`,
e` un errore...
Ovviamente, uno puo` decidere _coscientemente_
di fissare quella variabile, ma questa e` una
scelta precisa.
In tutti gli altri casi vale la regola di controllo,
altrimenti il codice e` sbagliato.
Detto altrimenti, nel dubbio si controlla.
Quindi, si, e` un errore in .bashrc, non una
destinazione d'uso diversa.
bye,
--
piergiorgio