obtener un archivo dentro de un script

obtener un archivo dentro de un script

Me gustaría obtener un archivo dentro de un script tcsh. En codigo:

#!/bin/tcsh

unsetenv LD_LIBRARY_PATH
source $1    
echo $LD_LIBRARY_PATH > temp_file

El resultado esperado:La variable de entorno establecida por el script usando el comando fuente se imprimirá en un archivo temporal.

Resultado actual:El archivo fuente se ejecuta correctamente, pero la LD_LIBRARY_PATHvariable permanece vacía.

¿Alguna idea sobre cómo hacer que esto funcione?


PD tcshPor supuesto, no es mi shell preferido, pero tengo un script en funcionamiento que configura numerosas variables de entorno en tcshlas que quiero empezar a trabajar bash. Pensé que la forma más fácil (aparte de reescribir el tcshshell cada vez) es obtenerlo, imprimir las variables en un archivo y, con un poco de magia del shell, volver a generar todo en bash.

Respuesta1

Lo intenté con csh en OpenBSD. Supongo que mi ejemplo también funciona con tcsh.

Archivo prueba.csh:

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

Archivo de datos.csh

#!/bin/csh
setenv VARIABLE 1234

Resultado:

$ csh test.csh
1234

Respuesta2

Para mayor referencia, esto realmente funciona, pero no se debe usar el shebang para la ruta tcsh:

 #!/bin/tcsh 

sino que utilice la ruta a 'env':

 #!/usr/bin/env tcsh

para permitir flexibilidad en sistemas con tcsh instalado en diferentes rutas. Por ejemplo, si 'tcsh' está instalado en '/usr/bin/tcsh', el primero fallará, mientras que el segundo seguirá funcionando.

información relacionada