Pagina 1 di 1
bash e parametri
Inviato: gio 10 giu 2010, 12:53
da zxzxasas
Salve,
oggi devo fare uno script per l' università e sostanzialmente, a differenza del solito, il prof ci ha imposto di usare, per il passaggio dei parametri il formato --parametro=questo
Io ho sempre usato una forma più semplice dove li passavo in modo posizionale.
Mi chiedevo se ci fosse un modo pulito per utilizzare questi parametri senza tagliare stringhe ecc ecc...
Grazie!
Re: bash e parametri
Inviato: gio 10 giu 2010, 13:20
da targzeta
Si, il modo c'è:
Emanuele
Re: bash e parametri
Inviato: gio 10 giu 2010, 13:34
da zxzxasas
Grazie!
Vi farò sapere i trascorsi!
Re: bash e parametri
Inviato: sab 12 giu 2010, 18:52
da j0kers
Codice: Seleziona tutto
while getopts ":--parametro=questo" opt; do
case $opt in
--parametro=questo) esegui ;;
esac
done
Re: bash e parametri
Inviato: sab 12 giu 2010, 21:25
da targzeta
j0kers ha scritto:Codice: Seleziona tutto
while getopts ":--parametro=questo" opt; do
case $opt in
--parametro=questo) esegui ;;
esac
done
NO! getopts è un comando interno della bash e non gestisce i parametri estesi mentre il comando getopt fa anche quello che serve al nostro amico. Prima di postare una soluzione controlla se funziona altrimenti se nessuno ti riprende (e non è facile seguire tutto il forum) queste cose errate rimangono ai posteri, mi raccomando!
E poi anche l'uso che fai di getopts è sbagliato.
Emanuele
Re: bash e parametri
Inviato: dom 13 giu 2010, 0:01
da j0kers
Forse ho sbagliato a capire allora a sto punto non conviene fare semplicemente una cosa del genere:
Codice: Seleziona tutto
#!/bin/sh
case $1 in
--pippo=1) echo 1;;
--pippo=2) echo 2;;
*) echo "Usage: $0 ecc..." ;;
esac
Senza usare getopt o altro ?
Re: bash e parametri
Inviato: dom 13 giu 2010, 9:52
da targzeta
A parte che è sbagliato perchè se io passo "--pippo 2" già il tuo script non funziona più, poi ci era richiesto un modo pulito, getopt gestisce entrambe le forme "--pippo=2" e "--pippo 2". Questo è il modo classico e pulito per gestire i parametri posizionali nella forma estesa, puoi anche tirare fuori cento soluzioni alternative più o meno funzionanti ma è più semplice leggere la pagina del manuale
.
Emanuele
Re: bash e parametri
Inviato: dom 13 giu 2010, 10:01
da j0kers
il prof ci ha imposto di usare, per il passaggio dei parametri il formato --parametro=questo
L'impostazione era questa non questa: --parametro questo
oltretutto con una piccola modifica a case può funzionare anche: --parametro questo
Re: bash e parametri
Inviato: dom 13 giu 2010, 10:29
da targzeta
Emanuele
Re: bash e parametri
Inviato: dom 13 giu 2010, 13:15
da j0kers
Guarda Emanuele non c'è l'ho con te figurati anzi da te ho solo da imparare però la cosa che non capisco
è che se un utente cerca un consiglio su un forum o un esempio di programmazione credo che un:
man 1 getopt
sia troppo banale non credi ? se un utente deve rivolgersi al forum per ricevere un man
beh a sto punto lo faceva da solo. Almeno un esempio dell'uso del comando penso che si può postare o sbaglio?
Io cerco sempre di postare qualche esempio che sia elegante o meno questo è un concetto a parte
ma almeno l'utente si fa un'idea di come continuare nelle sue applicazioni.
Ti ripeto non è un'accusa sia chiaro.
Re: bash e parametri
Inviato: dom 13 giu 2010, 14:23
da targzeta
Beh, io ho suggerito il man perchè mi era sembrato di capire che zxzxasas non conoscesse l'esistenza di getopt. Infatti lui non ha chiesto altro, ha solo ringraziato, io ne deduco che la soluzione proposta (man getopt) gli era sufficiente. Un esempio l'avrei postato se avesse chiesto delucidazioni, o meglio se avesse postato un esempio chiedendo perchè non va, ma da quello che ho capito il mio primo intervento era sufficiente.
Io non ti ho ripreso perchè hai postato un esempio, ma perchè l'esempio che hai postato era sbagliato, se avessi postato un esempio d'uso di getopt sarebbe stato utile però mi è sembrato di capire che pur di non leggere il manuale stavi cercando alternative più o meno semplici e incasinate.
Emanuele