fonte de um arquivo dentro de um script

3

Gostaria de criar um arquivo dentro de um script tcsh. No código:

#!/bin/tcsh

unsetenv LD_LIBRARY_PATH
source $1    
echo $LD_LIBRARY_PATH > temp_file

O resultado esperado: A variável de ambiente definida pelo script usando o comando source será impressa em um arquivo temporário.

Resultado real: O arquivo originado é executado corretamente, mas a variável LD_LIBRARY_PATH permanece vazia.

Alguma idéia de como fazer isso funcionar?

PS tcsh não é, obviamente, o shell de minha escolha, mas eu tenho um script no trabalho que configura várias variáveis de ambiente em tcsh que eu quero trabalhar em bash . Eu percebi que a maneira mais fácil (além de reescrever o tcsh shell a cada vez) é obtê-lo, imprimir as variáveis em um arquivo, e com um pouco de magia de shell, re-source everthing de volta no bash.

    
por nbubis 12.04.2012 / 09:35

2 respostas

0

Para referência futura, isso realmente funciona, mas não se deve usar o shebang:

 #!/bin/tcsh 

mas use:

 #!/usr/bin/env tcsh.
    
por 15.04.2012 / 16:08
1

Eu tentei com o csh no OpenBSD. Eu acho que meu exemplo funciona também com tcsh.

Arquivo test.csh:

#!/bin/csh
source data.csh
echo $VARIABLE

Arquivo data.csh

#!/bin/csh
setenv VARIABLE 1234

Resultado:

$ csh test.csh
1234
    
por 15.05.2012 / 19:23