[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