在脚本中获取文件

在脚本中获取文件

我想在 tcsh 脚本中获取一个文件。在代码中:

#!/bin/tcsh

unsetenv LD_LIBRARY_PATH
source $1    
echo $LD_LIBRARY_PATH > temp_file

预期结果:脚本使用source命令设置的环境变量将被打印到临时文件中。

实际结果:源文件运行良好,但LD_LIBRARY_PATH变量仍为空。

关于如何让它发挥作用有什么想法吗?


聚苯乙烯 tcsh当然不是我选择的 shell,但我有一个正在工作的脚本,它设置了许多环境变量,tcsh我想在bash.我认为最简单的方法(除了tcsh每次都重写 shell 之外)是获取它的源代码,将变量打印到文件中,然后使用一些 shell 魔法,在 bash 中重新获取所有内容。

答案1

我在 OpenBSD 上尝试过使用 csh 。我想我的例子也适用于 tcsh。

文件测试.csh:

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

文件数据.csh

#!/bin/csh
setenv VARIABLE 1234

结果:

$ csh test.csh
1234

答案2

为了进一步参考,这确实有效,但不应该使用 shebang 到 tcsh 路径:

 #!/bin/tcsh 

而是使用“env”的路径:

 #!/usr/bin/env tcsh

以允许在不同路径中安装 tcsh 的系统上的灵活性。例如,如果“tcsh”安装在“/usr/bin/tcsh”中,则前者将失败,而后者仍然可以工作。

相关内容