Newsgroup: it.comp.os.linux.iniziare
Titolo: script bash: caricare librerie automaticamente

. ~/lib/libreria1.sh
. ~/lib/libreria2.sh
. ~/lib/libreria3.sh
 
Poi voglio creare un altro file che usa le stesse librerie 
(~/bin/test/2.sh), quindi ci metto sempre le stesse righe:
 
. ~/lib/libreria1.sh
. ~/lib/libreria2.sh
. ~/lib/libreria3.sh
 
# altre istruzioni...
 
 
Poi voglio creare un altro file che usa le stesse librerie 
(~/bin/test/3.sh), quindi ci metto sempre le stesse righe:
 
. ~/lib/libreria1.sh
. ~/lib/libreria2.sh
. ~/lib/libreria3.sh
 
# altre istruzioni...
 
 
Poi voglio creare un altro file che usa le stesse librerie 
(~/bin/test/4.sh), quindi ci metto sempre le stesse righe:
 
. ~/lib/libreria1.sh
. ~/lib/libreria2.sh
. ~/lib/libreria3.sh
 
# altre istruzioni...
 
 
Poi sinceramente mi sono stufato...
Non c'è modo di caricare tali librerie automaticamente?
Ad esempio impostandole in qualche modo, come librerie di default...
 
O spiegandola meglio, il sistema, il bootstrap, il launcher, la shell... 
o roba del genere, deve capire che ogni volta che viene lanciato un file 
'~/bin/test/*.sh', deve automaticamente caricare tali librerie.


Facebook: Massimo Bacilieri

 '~/bin/test/*.sh', deve automaticamente caricare tali librerie.
 
A parte il "bashrc", che e` globale, vi
possono essere varie alternative.
 
Una tipica e` di avere le librerie in un
unico file e chiamare quello dagli script,
il quale potrebbe a sua volta chiamare gli
altri file.
 
Questa e` probabilmente la soluzione migliore,
"automaticamente" e` un po' pericoloso nel
momento in cui non vuoi piu` che sia automatico.
 
Dipende dalla tua architettura.
 
Per esempio, i tuoi script iniziano sempre con:
 
#!/bin/bash
 
o simile?
 
Se non lo fanno, hai iniziato male,
 
bye,
 
-- 
 
piergiorgio

 #!/bin/bash
 
si, certamente
 


 
Peggio ancora :-b

 Meglio di no: programmazione inefficiente.
 
Guarda che stai usando bash.

 si, certamente
 
Allora, forse, non ho mai provato, potresti
cambiare /bin/bash con uno script che prima
carica le librerie.
 
Cioe`, lo script principale avra`:
 
#!/usr/local/bin/myshell
...
...
 
L'altro codice, cioe` /usr/local/bin/myshell
avra` qualcosa come:
 
#!/bin/bash
/usr/local/bin/library1.sh
...
...
source "$@"
 
O qualcosa di simile, come scritto sopra, non ho
mai provato di persona.
Devi un po' vedere tu se funziona e cosa sia meglio.
Per esempio, "source "$@"" potrebbe non essere appropriato.
 
 
bye,
 
-- 
 
piergiorgio

 Meglio di no: programmazione inefficiente.
 
Non è questione di efficienza. È questione di cosa devi fare. Cosa che 
mi sembra tu non abbia ben chiaro.



 
Vorrei caricare le librerie in modo un po' comodo, ma se tale comodità 
si paga con caricamenti inutili è meglio evitare.
Tuttavia una libreria unica che fa da raccoglitore mi pare un buon 
compromesso

 source "$@"
 
Quindi creare una shell personalizzata?
Quasi direi che mi piace!!

 Quasi direi che mi piace!!
 
Esattamente, ha perfettamente capito.
 
Bisogna un po' limare le cose e fare
qualche test.
 
Per esempio, credo che "source" sia la
soluzione migliore, dato che esegue lo
script nella _stessa_ shell.
 
Pero` non saprei come si comporta con
parametri da linea di comando.
 
bye,
 
-- 
 
piergiorgio