PDA

View Full Version : Variabili globali: Sto impazzendo.


Fede
22-11-2011, 18:35
Ciao a tutti, vorrei chiedervi un aiutino, perchè sto letteralmente impazzendo appresso ad un quesito esistenziale:
Non vi ammorbo col perchè, ma arrivo subito al dunque:

ho bisogno di creare una variabile GLOBALE, intendendo con questo che possa utilizzarla NON SOLO in shell figlie (export fa proprio questo), ma che abbia valore fino al logout dell' utente, su tutte le shell aperte.

Vi prego ditemi che è possibile.
non voglio appoggiarmi a files o altro.
Vorrei solo poter gestire una variabile globale.

1000 punti stima a colui che mi sapra' rispondere.

Fede
22-11-2011, 21:11
Мисля, че не можем да

"credo non si possa"

sacarde
23-11-2011, 08:25
non credo di aver capito cosa intendi per "globale" ...


le variabili per la shell le trovi in:

/etc/profile

Fede
23-11-2011, 09:16
non credo di aver capito cosa intendi per "globale" ...


le variabili per la shell le trovi in:

/etc/profile

intendo di poter utilizzare una variabile in questo modo:

FEDE="ciao"
echo $FEDE
ciao

e fino a qui non ci sono problemi.

a questo punto vorrei poter aprire un' altra shell ed ottenere
echo $FEDE
ciao

invece non esiste!

ho provato ad esportare la variabile con
export PIPPO
ma alla fine ho scoperto che la visibilità c'è solo nelle childshell.

sacarde
23-11-2011, 09:22
ma se le metti in: /etc/profile ?


li' dentro ci sono variabili che vengono valorizzate ad ogni shell

Fede
23-11-2011, 10:33
ma se le metti in: /etc/profile ?


li' dentro ci sono variabili che vengono valorizzate ad ogni shell

Aiuto, perdonami, ma sono diversamente intelligente con linux.

questo è il contenuto di profile:
# /etc/profile: system-wide .profile file for the Bourne shell (sh(1))
# and Bourne compatible shells (bash(1), ksh(1), ash(1), ...).

if [ -d /etc/profile.d ]; then
for i in /etc/profile.d/*.sh; do
if [ -r $i ]; then
. $i
fi
done
unset i
fi

if [ "$PS1" ]; then
if [ "$BASH" ]; then
PS1='\u@\h:\w\$ '

e così via...

facevo quella domanda perché mi servirebbe creare degli alias.
ho sei stringhe da circa 28 caratteri l'una, che devo di volta in volta ricopiarmi integralmente all' interno di comandi (che purtroppo non posso aprire sulla stessa shell).
Me ne servono almeno 6 in parallelo, e queste stringhe cambiano ad ogni sessione.
Se esistessero altri sistemi sarei ben felice di usarli.
Ho pensato di scriverle in un file di testo, su righe distinte, per poi richiamarle, magari con uno script, all' avvio di ogni shell.

In ogni caso grazie mille, davvero.

sacarde
23-11-2011, 10:37
gli alias o variabili, se sono per singoli utenti, puoi metterle in:

~/.bash_profile
o
~/.bashrc

Fede
23-11-2011, 11:42
gli alias o variabili, se sono per singoli utenti, puoi metterle in:

~/.bash_profile
o
~/.bashrc

k, grazie mille...
in ogni caso sto provando a smanettare con i files...
l'unica cosa e' che sto nuovamente impazzendo con l'assegnazione di variabili da un file...
cioe':

NOMEVARIABILE='cat NOMEFILE'
non funziona...
cacchio, le cose semplici sembrano assurde.
intanto grazie, adesso sono in ospedale, e se dovesse saltare la batteria, potrei leggerti nuovamente stasera.
Intanto grazie, grazie e grazie

sacarde
23-11-2011, 12:21
volevi dire:

NOMEVARIABILE=`cat NOMEFILE`


non apice ma backtic

Fede
23-11-2011, 12:51
volevi dire:

NOMEVARIABILE=`cat NOMEFILE`


non apice ma backtic

ehm, diciamo che per l'ennesima volta ho fatto la figura del ...



:doh:

Grazie mille