[bash] esportare variabile da uno script [risolto]

Postate qui per tutte le discussioni legate a Linux in generale.

Moderatore: Staff

Regole del forum
1) Citare sempre la versione di Slackware usata, la versione del Kernel e magari anche la versione della libreria coinvolta. Questi dati aiutano le persone che possono rispondere.
2) Per evitare confusione prego inserire in questo forum solo topic che riguardano appunto Gnu/Linux in genere, se l'argomento è specifico alla Slackware usate uno dei forum Slackware o Slackware64.
3) Leggere attentamente le risposte ricevute
4) Scrivere i messaggi con il colore di default, evitare altri colori.
5) Scrivere in Italiano o in Inglese, se possibile grammaticalmente corretto, evitate stili di scrittura poco chiari, quindi nessuna abbreviazione tipo telegramma o scrittura stile SMS o CHAT.
6) Appena registrati è consigliato presentarsi nel forum dedicato.

La non osservanza delle regole porta a provvedimenti di vari tipo da parte dello staff, in particolare la non osservanza della regola 5 porta alla cancellazione del post e alla segnalazione dell'utente. In caso di recidività l'utente rischia il ban temporaneo.
Rispondi
Avatar utente
sya54M
Master
Master
Messaggi: 1665
Iscritto il: mer 6 giu 2007, 14:44
Nome Cognome: Andrea Peluso
Slackware: 64-current
Kernel: ultimo
Desktop: KDE
Località: (Salerno)
Contatta:

[bash] esportare variabile da uno script [risolto]

Messaggio da sya54M »

salve, siccome export, se usato in uno script, può esportare le variabili solo ai processi a lui figli, come posso fare per usare una variabile generata da uno script in un altro script che non è figlio del primo?
si può fare qualcosa?
grazie mille
Ultima modifica di sya54M il dom 24 mag 2009, 17:29, modificato 1 volta in totale.

enzo.bak
Linux 1.x
Linux 1.x
Messaggi: 144
Iscritto il: lun 28 apr 2008, 17:58
Località: Reggio Calabria

Re: [bash] esportare variabile da uno script

Messaggio da enzo.bak »

Puoi farla salvare su file, dal quale la leggerà l'altro script.
Sicuramente ci sono modi più eleganti, ma questo mi pare il più semplice.

Avatar utente
conraid
Staff
Staff
Messaggi: 13631
Iscritto il: gio 14 lug 2005, 0:00
Nome Cognome: Corrado Franco
Slackware: current64
Desktop: kde
Località: Livorno
Contatta:

Re: [bash] esportare variabile da uno script

Messaggio da conraid »

sya54M ha scritto:salve, siccome export, se usato in uno script, può esportare le variabili solo ai processi a lui figli, come posso fare per usare una variabile generata da uno script in un altro script che non è figlio del primo?
si può fare qualcosa?
grazie mille
Se gliela passi?

Codice: Seleziona tutto

nomescript pippo
e poi in nomescript hai

Codice: Seleziona tutto

VAR=$1
un po' come faresti in una applicazione php tramite get e post insomma :-)

Avatar utente
Paoletta
Staff
Staff
Messaggi: 3975
Iscritto il: lun 25 apr 2005, 0:00
Slackware: 14.2 - 64 bit
Desktop: fluxbox
Località: Varese

Re: [bash] esportare variabile da uno script

Messaggio da Paoletta »

conraid ha scritto:
sya54M ha scritto:salve, siccome export, se usato in uno script, può esportare le variabili solo ai processi a lui figli, come posso fare per usare una variabile generata da uno script in un altro script che non è figlio del primo?
si può fare qualcosa?
grazie mille
Se gliela passi?

Codice: Seleziona tutto

nomescript pippo
e poi in nomescript hai

Codice: Seleziona tutto

VAR=$1
un po' come faresti in una applicazione php tramite get e post insomma :-)
per fare quello che dici c'è bisogno che avvi i due script dalla medesima shell, cosa che ti puoi risparmiare con la soluzione del file; dipende da quel che deve fare sya54M

Avatar utente
sya54M
Master
Master
Messaggi: 1665
Iscritto il: mer 6 giu 2007, 14:44
Nome Cognome: Andrea Peluso
Slackware: 64-current
Kernel: ultimo
Desktop: KDE
Località: (Salerno)
Contatta:

Re: [bash] esportare variabile da uno script

Messaggio da sya54M »

conraid ha scritto:Se gliela passi?
nomescript pippo

e poi in nomescript hai
VAR=$1

un po' come faresti in una applicazione php tramite get e post insomma
no perchè la variabile viene creata dal primo script, non è costante e il secondo non lo avvio manualmente.
Paoletta ha scritto:per fare quello che dici c'è bisogno che avvi i due script dalla medesima shell
e infatti questo era il problema.

se non ci sono altre soluzioni credo che farò come ha sugerito enzo.bak

grazie delle risposte

Avatar utente
Paoletta
Staff
Staff
Messaggi: 3975
Iscritto il: lun 25 apr 2005, 0:00
Slackware: 14.2 - 64 bit
Desktop: fluxbox
Località: Varese

Re: [bash] esportare variabile da uno script

Messaggio da Paoletta »

immagino che l'unica alternativa sia proprio quella del file; del resto per avere i valori delle variabili settati sempre allo stesso modo ad ogni avvio di shell sono previsti i files tipo .bash_profile e simili

Avatar utente
urka58
Linux 3.x
Linux 3.x
Messaggi: 543
Iscritto il: mer 7 dic 2005, 23:29

Re: [bash] esportare variabile da uno script

Messaggio da urka58 »

Credo che l'uso di "source" possa fare al caso tuo. Tipo

Codice: Seleziona tutto

#!/bin/sh
# mioscript1.sh
VAR=`echo ciao`

Codice: Seleziona tutto

#!/bin/sh
# mioscript2.sh
. mioscript1.sh
echo $VAR
Da verificare con uno script meno banale, ovviamente, sempre che abbia capito il tuo intento...
Ciao

Avatar utente
sya54M
Master
Master
Messaggi: 1665
Iscritto il: mer 6 giu 2007, 14:44
Nome Cognome: Andrea Peluso
Slackware: 64-current
Kernel: ultimo
Desktop: KDE
Località: (Salerno)
Contatta:

Re: [bash] esportare variabile da uno script

Messaggio da sya54M »

@urka58: se in questo modo include solo le variabili del primo script e non comporta altro e se io ho immaginato bene quello che fa allora credo che hai azzeccato

Avatar utente
urka58
Linux 3.x
Linux 3.x
Messaggi: 543
Iscritto il: mer 7 dic 2005, 23:29

Re: [bash] esportare variabile da uno script

Messaggio da urka58 »

sya54M ha scritto:@urka58: se in questo modo include solo le variabili del primo script e non comporta altro e se io ho immaginato bene quello che fa allora credo che hai azzeccato
Esegue tutti i comandi inclusi nello script, non so se per il tuo scopo sia un bene o un male. Per superare l'ostacolo puoi creare un file di sole definizioni delle variabili che vengono richiamate tramite il "source" di tale file negli script che le utilizzano. L'eventuale file deve essere nel PATH dell'utente che lancia lo script/s. (o usi il percorso completo).
In questo caso la soluzione non è molto diversa da quella già proposta di un file su cui vengono scritte le variabili. che costringe comunque ad eseguire il primo script. Con il "source" del file contenente la definizione delle variabili. esegui solo lo script che ti serve per l'occasione.
Ciao

Avatar utente
sya54M
Master
Master
Messaggi: 1665
Iscritto il: mer 6 giu 2007, 14:44
Nome Cognome: Andrea Peluso
Slackware: 64-current
Kernel: ultimo
Desktop: KDE
Località: (Salerno)
Contatta:

Re: [bash] esportare variabile da uno script

Messaggio da sya54M »

beh, anche questa è una soluzione allora, se definisco le variabili in un terzo script, perchè se esegue tutto il primo script per me è un male. però quando dovrei avere un terzo script non so quanto convenga rispetto a far creare un file in /tmp...
grazie per entrambe le soluzioni :thumbright: , vedrò quale mi piace di più

Rispondi