ENOSIG Discussie (threads)
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: bash local
Hoi Wim,
Ik neem de vrijheid de lijst te cc-en en je antwoord aan mij hieronder te quoten...
On Fri, May 25, 2018 at 05:11:23PM +0000, Wim wrote:
> On Fri, 25 May 2018 16:42:39 +0200 Joost van Baal-Ilić <joostvb-enosig-people@xxxxxxx> wrote:
> > On Fri, May 25, 2018 at 12:56:53PM +0000, Wim wrote:
>
> Minder code:
>
> function localtest()
> {
> local aaaa=$1
> eval "$2='$aaaa'"
> }
>
> echo Andere variablenaam
> localtest 34 result
> echo $result
>
> echo "Variablenaam die ook in de functie (als local) voorkomt"
> localtest 34 aaaa
> echo $aaaa
Dank je, dat maakt t voor mij ietsje duidelijker.
> > > script draai dan krijg ik geen output als de variable naam dezelfde is in de
> > > functie en in de de functie aanroepende code zoals de output laat zien. Ik
> > > kan het niet verklaren want de local declaratie zou dat toch mogelijk moeten
> > > maken. Zie ik wat over het hoofd?
> >
> > Ik snap niet helemaal wat je wilt. Wat ik wel "eng" vindt is dat je doet
> >
> > eval "$3='$cccc'"
> Wat is daar eng aan? cccc wordt in $3 gezet waardoor de waarde van cccc
> terugkan naar de aanroepende functie. Mogelijk is er een nettere oplossing
> maar die heb ik ondanks het nodige onderzoek lange tijd geleden nog niet
> gevonden. Dit werkt goed voor allerhande variablen.
Ik snap dat t voor jou werkt, maar ikzelf ben aan andere programmeer-technieken
gewend. Ik vermoed dat je datgene wat je helemaal uiteindelijk wilt bereiken
ook zonder die 'eval' voor elkaar kunt krijgen, en ik vermoed dat dan ook dat
local-probleem (misschien is dat wel bug in bash) je niet meer dwars zit.
Het feit dat aanroepen van
localtest a b
een variable met de naam $b creeert is voor mij onverwacht. Had niet gedacht
dat zoiets kon in bash. Ik ben gewend dat argumenten van functies door
functies gelezen worden, en niet gebruikt worden als variabele-namen.
> > . Is $3 niet read-only daar? En wordt daar wel de locale $cccc gebruikt?
>
> Ik vermoed van niet want "$3" krijgt de waarde van cccc.
Inderdaad, je hebt gelijk.
Ik ben benieuwd welk probleem je op aan t lossen bent.
Groeten,
Joost
Follow-ups:
[
Date Index]
[
Thread Index]