On Mon, 15 Apr 2013 16:28:59 +0200, david stella wrote:
> Il 15/04/2013 15:58, RedWiz ha scritto:
>> Ti faccio un esempio, se tu installi mplayer e lanci
>>
>> mplayer film.avi
>>
>> Il film viene riprodotto da mplayer con le sue impostazioni di default.
>> Se vuoi sovrascrivere queste impostazioni, ogni volta che lanci
>> mplayer, senza doverle esplicitare ogni volta come argomenti es :
>> mplayer -fs film.avi per avere la riproduziuone in fullscreen
>>
>> devi creare un file di config per mplayer dove scrivi
>>
>> fs=yes
>>
>> e così via per ogni altra impostazione.
>
> E nell'ambito degli script bash dove sta il parallelismo?
>
Il parallelismo sta nel fatto che se qualcosa è parametrizzabile (vedi:
la posizione di un altro script da richiamare, lo username e password di
un eventuale database da interrogare, eccetera), è sempre meglio
parametrizzarla .
La parametrizzazione avviene scrivendo il valore di tali parametri in un
file di configurazione, quindi fuori dal sorgente dello script.
Al momento dell'esecuzione lo script legge ed interpreta il file di
configurazione, assegna i valori alle dovute variabili, e fa quel che
deve fare.
Poi puoi migliorare lo script accettande tali parametri anche da riga di
comando, in modo da sovrascrivere quelli scritti nel file di
configurazione, ma in generale non è necessario.
Scrivere invece il valore dei parametri direttamente all interno dello
script è una *pessima* pratica meglio nota come hard coding (pessima
sopratutto per linguaggi compilati, ma brutta anche per gli
interpretati), che può andar bene giusto per lo script che tieni solo tu
nel tuo pc che ti serve a rippare un cd audio, per fare un esempio.
http://it.wikipedia.org/wiki/Cablare_a_codice
>
> ~/lib/a/b/c/d.sh
>
> è meglio fare
>
> ~/etc/config.sh
> $samplePath/d.sh
>
> ???
diciamo di sì, anche se un file di configurazione non deve essere uno
script eseguibile. Vuoi scrivere direttamnete dentro al file il valore
della variabile?
ok, poi pero' usa
. ~/etc/tuo.config
>
> Naturalmente in ~/etc/config.sh ci metto samplePath="~/lib/a/b/c"
naturalmente