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


10

(私は既存の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

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

回答:


19

3つの方法:

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

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

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

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

優秀な!私はそれが私が考えていた方向よりも簡単でなければならないことを知っていました...
Vincent

エクスポートするだけでコマンドが実行されるほど簡単であることに気づかなかったのはなぜですか?ありがとう!
クリスティアーノム
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.