[linux] Re: awk-vraagje: hoe een environment variable in een variabele steken?
Bram Mertens
m8ram op linux.be
Do Okt 27 22:31:12 CEST 2005
asmuth op bakunin.xs4all.nl wrote:
>>Even zoeken in gnu awk book leerde me al snel dat je hiervoor het array
>>ENVIRON moet gebruiken, bv. "printf ("home is %s", ENVIRON["HOME"]);".
>
>
> Volgens het O'Reilly boek gebruik je iets als
>
> echo | awk '{printf "Ik woon in %s.\n", huis}' huis="$HOME"
>
>
>>Jammer genoeg lukt het niet om deze environment variabele in een
>>variabele te steken, na "home = ENVIRON["HOME"]" blijkt home nog steeds
>>leeg te zijn.
>
>
> Nog verder bladerend komen we op iets als
> awk 'BEGIN{naam=ENVIRON["LOGNAME"]; huis=ENVIRON["HOME"];
> printf "%s woont in %s.\n", naam, huis; quit}'
>
> Met vriendelijke groet,
>
>
> Daniel von Asmuth
Ik zal dit morgen eens testen maar zoiets leek gisteren niet te werken...
Misschien een belangrijk detail, we hebben dit getest op een AIX machine...
Uiteindelijk heeft een collega het volgende in elkaar gestoken:
{
com = sprintf("C-progje %s ...", $1);
com | getline inp;
printf("Output=%s\n, inp);
}
Waarbij het comando dus in de com variabele gestoken wordt en dit wordt
uitgevoerd d.m.v. getline.
Bedankt voor het meedenken!
Bram
More information about the Linux
mailing list