我想在 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”中,则前者将失败,而后者仍然可以工作。