Look behind you! A three headed monkey!
Verwijderd
Onderstaande zou moeten werken:
eval echo$`echo $B`
$ A=4
$ B=A
$ eval echo $`echo $B`
4
Maar een elegante oplossing is 't niet.....
Deze shell buildin werkt naar mijn weten alleen met sh (bash), csh en ksh.
eval echo$`echo $B`
$ A=4
$ B=A
$ eval echo $`echo $B`
4
Maar een elegante oplossing is 't niet.....
Deze shell buildin werkt naar mijn weten alleen met sh (bash), csh en ksh.
[ Voor 50% gewijzigd door Verwijderd op 20-08-2003 15:25 ]
Nee klopt, maar doet inderdaad wat ik wil. Zat op zich zelf al dicht in de buurt (staat niet in TS), maar die eval was ik niet op gekomen.
Look behind you! A three headed monkey!
Volgens mij werkt dit ook, en hiermee kun je ook 'complexere' dingen bouwen die B bijvoorbeeld laat afhangen van meer dan 1 andere variabele:
Het idee is dat het commando dat tussen de $() staat wordt uitgevoerd telkens wanneer B ergens gebruikt wordt. Dus ja, dat is elke keer, precies wat je wilt.
code:
1
2
3
4
5
6
7
| $ export A=4 $ export B = $(echo $A) $ echo $B 4 $ export A=5 $ echo $B 5 |
Het idee is dat het commando dat tussen de $() staat wordt uitgevoerd telkens wanneer B ergens gebruikt wordt. Dus ja, dat is elke keer, precies wat je wilt.
[ Voor 26% gewijzigd door Wilke op 20-08-2003 16:28 ]
Verwijderd
Dit werkt niet in bash (waar wel?)
B houdt de waarde waarmee je B hebt geinitialiseerd. Het opnieuw uitvragen van de waarde van B, geeft geen nieuwe waarde.
Verwijderd
Je kan ook functies gebruiken:
Dit werkt in bash.
code:
1
2
3
4
5
6
7
| $ show_b(){ echo $A; }
$ export A=4
$ show_b
4
$ export A=5
$ show_b
5 |
Dit werkt in bash.
Pagina: 1