setenv
é um comando somente csh, mas system()
executa seus argumentos através do shell Bourne ( /bin/sh
), não csh
. Você deseja comandar para ser export VARIABLE=value
para o shell Bourne.
No entanto, mesmo se você fizer isso, será ineficaz. system()
inicia um novo shell e executa o comando nesse shell. Assim que o comando termina, esse shell - e seu ambiente - desaparecem. Então, a variável de ambiente que você define rapidamente desaparece.
O que você precisa fazer é usar awk
para gerar uma lista de comandos csh
para executar e gerar saída (não tente executá-los). Então você precisa fazer o shell que chamou a saída awk
read awk
e executá-lo:
eval 'the awk command'