PDA

Visualizza la versione completa : [bash] valore della variabile con nome


Guglie
19-09-2005, 22:18
non sapevo bene che titolo mettere perchè non so come si chiama quello che vorrei fare :fagiano:

NUMBKPS_weekly=4
time=weekly
num='$NUMBKPS_'$time
echo $num
vorrei che $num prendesse il valore 4, ma non ci riesco

U-bahn
19-09-2005, 23:10
Originariamente inviato da Guglie
non sapevo bene che titolo mettere perchè non so come si chiama quello che vorrei fare :fagiano:

NUMBKPS_weekly=4
time=weekly
num='$NUMBKPS_'$time
echo $num
vorrei che $num prendesse il valore 4, ma non ci riesco

#!/bin/bash
NUMBKPS_weekly=4
time=weekly
num="$NUMBKPS_weekly"$time
echo $num
questo stampa a video
4weekly
servono i doppi apici, altrimenti la variabile non viene interpolata

Guglie
20-09-2005, 18:23
non hai capito :)
non posso usare
echo $NUMBKPS_weekly
perchè non è sempre quella variabile che devo outputtare, ma la variabile è sempre $("NUMBKPS_"$variabile) e io devo combinare insieme queste 2 stringhe per ottenere la variabile desiderata

U-bahn
20-09-2005, 20:21
ora ho capito !!!:yuppi:
..ci sono riuscito, però usando perl...

#!/usr/bin/perl
$NUMBKPS_weekly =4 ;
$time= 'weekly' ;
$num=${'NUMBKPS_'.$time};
print $num."\a\n"

Ikitt
20-09-2005, 20:34
Originariamente inviato da Guglie
non sapevo bene che titolo mettere perchè non so come si chiama quello che vorrei fare :fagiano:

NUMBKPS_weekly=4
time=weekly
num='$NUMBKPS_'$time
echo $num
vorrei che $num prendesse il valore 4, ma non ci riesco
Un po` involuto, ma funziona...


NUMBKPS_weekly=4
time=weekly
echo $( eval echo "\$NUMBKPS_${time}" )

Guglie
20-09-2005, 21:01
Originariamente inviato da Ikitt
Un po` involuto, ma funziona...
grazie
cosa intendi con involuto? che non è pulito come metodo?
avevo anche pensato a un array, ma poi mi sono fissato a voler usare quel metodo :fagiano:

cacao74
22-09-2005, 12:07
Ritiro su il thread per segnalare quello che ritengo la soluzione piu' coerente ad un ambiente di bash. :)

Referenziazione indiretta delle variabili, ovvero come utilizzare una variabile il cui nome e' il valore di un'altra variabile. Allego link: http://it.tldp.org/guide/abs/ivr.html

ciao

Ikitt
22-09-2005, 12:13
Originariamente inviato da Guglie
grazie
cosa intendi con involuto? che non è pulito come metodo?
Esattamente, molto meglio quanto indicato da cacao74. Devo decidermi ad aggiornarmi su bash :stordita:

Guglie
22-09-2005, 17:53
grazie cacao74 :)

avevo in mente questa cosa perchè l'avevo vista in php ed effettivamente funziona più o meno allo stesso modo

Loading