2010-03-10 49 views
0

我在Solaris上运行简单的csh脚本时发现了一个奇怪的问题。我们称之为test。当我运行这个:csh脚本继承envirionment变量?

shell> echo $LD_LIBRARY_PATH 
shell> /usr/lib:/usr/openwin/lib:/usr/dt/lib:/usr/local/lib:/lib:/my_app/lib 
shell> ./test 
shell> /usr/lib:/usr/openwin/lib:/usr/dt/lib:/usr/local/lib:/lib 

他们打印出$ LD_LIBRARY_PATH完全不同的值。我无法弄清楚为什么。 (在我的linux机器上没问题)

谢谢!

+0

显示他们的结果... – ghostdog74 2010-03-10 04:28:21

+0

顺便说一下,它的'#!/ bin/csh' – ghostdog74 2010-03-10 04:34:40

+0

结果更新 – solotim 2010-03-10 04:35:01

回答

1

您是否在您的$HOME/.cshrc中设置了$LD_LIBRARY_PATH

You really shouldn't如果你这样做,因为它往往只是打破了软件,但改变脚本的第一行#!/bin/csh -f会导致你的脚本不能在开始读.cshrc文件,保护你从谁犯了那个错误的其他用户。

+0

谢谢!我应该考虑一下。 – solotim 2010-03-10 06:18:29

0

如果您的交互式shell在sh/ksh系列中,您可能已使用“set”设置LD_LIBRARY_PATH,但未导出它。在这种情况下,新值将被设置为普通变量,但不会导出到环境中。但更有可能的是你的脚本正在重新初始化变量。

您可以使用“env”命令从交互式shell中转储出导出的环境以检查它。

+0

问题解决。不管怎样,谢谢你! – solotim 2010-03-11 04:38:51