web-dev-qa-db-ja.com

`Nohup`を使用して実行されるプログラムの環境変数を設定するにはどうすればよいですか?

(私は既存のBashスクリプトを編集しているので、おそらくここで愚かな間違いをしています...)

次のように、環境変数を引数としてコマンドを保存するシェルスクリプトがあります。

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

ここには関係のない概念がいくつかあるように思いますが、どれも理解していないし、知りさえしていません。上記を行うには何が必要ですか?

9
Vincent

3つの方法:

  • mvnを起動する前に変数を設定(およびエクスポート)します

  • nohupの起動時に変数を設定します。

    FORMAVEN=valueForMaven Nohup $COMMAND > logfile
    
  • envを使用して変数を設定する

    COMMAND="env FORMAVEN=valueForMaven mvn clean install -P $MAVEN_PROFILE"
    
18
AProgrammer