2012-12-10 36 views
0

我有以下文件如何從子shell腳本中導出庫路徑並在父shell中使用該路徑?

  1. build.sh

    source exportpath.sh 
    
  2. exportpath.sh

    export LD_LIBRARY_PATH=/usr/local/lib/ 
    

但是,當我執行這個build.sh然後運行echo $LD_LIBRARY_PATH命令我無法獲得LD_LIBRARY_PATH val UE。如何將此值設置爲current shell

我發現我們必須在source它在當前shell中。但我希望它通過shell腳本完成。

當我在當前shell中使用source exportpath.sh時,我的LD_LIBRARY_PATH正在工作,但我希望這應該由shell腳本完成。

我該怎麼做?

+0

你爲什麼問到?什麼是總體目標? –

+0

可能的重複[從bash腳本中將變量導出到環境中而無需採用它](http://stackoverflow.com/questions/16618071/export-a-variable-to-the-environment-from-a-bash- script-without-sourcing-it) – tripleee

回答

-5
echo $LD_LIBRARY_PATH 

請注意使用「$」來引用變量值。

+0

但是,子shell和父shell不會奇蹟般地共享已更改(在子項中)的環境變量。 –

+0

感謝TheRuss,這是我犯的錯字錯誤。我需要一個簡單的解決方案來解決我的問題。 – pradipta

+0

@Basile Starynkevitch:這正是我面臨的問題,你有什麼解決方案。 – pradipta

3

在子shell中設置的環境變量被傳播到父shell是沒有奇妙的方法。見this reply

您可以實現一些約定,例如其exportpath.sh取一個文件名,這build.sh後來source(或使用eval)。

您可能希望擁有自己的外殼function來包裝兩者。

但是你應該通常沒有做這種奇怪的技巧。例如,你可以將你的一些程序打包成一個shell腳本,設置LD_LIBRARY_PATHmozillafirefox通常會做這樣的事情)。

相關問題