在腳本中取得文件

在腳本中取得文件

我想在 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”中,則前者將失敗,而後者仍然可以工作。

相關內容