Bash如何為使用
如何為使用 nohup
執行的程序設置環境變數?
(我正在編輯一個現有的 Bash 腳本,所以我可能在這裡犯了一個愚蠢的錯誤……)
我有一個 shell 腳本,它保存一個帶有環境變數的命令作為它的參數,如下所示:
COMMAND="mvn clean install -P $MAVEN_PROFILE"
然後它執行命令
nohup
大致如下:nohup $COMMAND > logfile
這行得通。
現在,我想設置一個可以在 Maven 中訪問的環境變數。我已經嘗試了以下幾件事:
COMMAND="FORMAVEN=valueForMaven mvn clean install -P $MAVEN_PROFILE"
…但它只是以以下方式終止:
nohup: failed to run command `FORMAVEN=valueForMaven': No such file or directory
我覺得這裡有幾個不相關的概念在起作用,我都不了解甚至不知道。我需要什麼才能做到以上幾點?
三種方法:
- 在啟動 mvn 之前設置(並導出)變數
- 在 nohup 啟動時設置變數:
FORMAVEN=valueForMaven nohup $COMMAND > logfile
- 使用 env 設置變數
COMMAND="env FORMAVEN=valueForMaven mvn clean install -P $MAVEN_PROFILE"