2010-03-10 48 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