Shell-Script
在腳本中獲取文件
我想在 tcsh 腳本中獲取文件。在程式碼中:
#!/bin/tcsh unsetenv LD_LIBRARY_PATH source $1 echo $LD_LIBRARY_PATH > temp_file
**預期結果:**腳本使用 source 命令設置的環境變數將列印到臨時文件中。
**實際結果:**源文件執行良好,但
LD_LIBRARY_PATH
變數保持為空。關於如何讓它發揮作用的任何想法?
PS
tcsh
當然不是我選擇的 shell,但我有一個腳本在工作,它設置了許多tcsh
我想在其中工作的環境變數bash
。我認為最簡單的方法(除了tcsh
每次都重寫 shell)是獲取它,將變數列印到一個文件中,並使用一些 shell 魔術,重新在 bash 中重新獲取所有內容。
為了進一步參考,這確實有效,但不應將 shebang 用於 tcsh 路徑:
#!/bin/tcsh
而是使用“env”的路徑:
#!/usr/bin/env tcsh
允許在不同路徑中安裝 tcsh 的系統上具有靈活性。例如,如果 ’tcsh’ 安裝在 ‘/usr/bin/tcsh’ 中,那麼前者會失敗,而後者仍然可以工作。
我在 OpenBSD 上嘗試過使用 csh。我想我的例子也適用於 tcsh。
文件 test.csh:
#!/bin/csh source data.csh echo $VARIABLE
文件數據.csh
#!/bin/csh setenv VARIABLE 1234
結果:
$ csh test.csh 1234