2017-03-24 13 views
1

環境変数を使用しているシェルスクリプトを作成しています。

環境変数の値には$ 1が設定されています。スクリプトでenv変数を使用しているときは、スクリプト引数から渡されたパラメータとして$ 1を使用する必要があります。

例:シェルスクリプト(myScript.sh)において

export EXPORT_VAR="-DmyVariable=\$1" 

は、私は以下のような上記のenv変数を使用しています。

#!/bin/bash 

exec $JAVA_HOME/bin/java $EXPORT_VAR com.myProject.myJob "[email protected]" 

次のように私は、スクリプトを実行しています:

./myScript.sh var1 var2 

私が教えてください次のコマンドは

exec $JAVA_HOME/bin/java -DmyVariable=var1 com.myProject.myJob "var1 var2" 

を実行することにしたいです。


$ 1は単なる例にすぎません。環境変数は$ 2 .... $ Nを持つことができます。あなたはオプションとして変数を渡すことができますので、私はあなたのスクリプトをリファクタリングを示唆している

#!/bin/bash 

exec $JAVA_HOME/bin/java -DmyVariable=$1 com.myProject.myJob "$1 $2" 

答えて

0

ながら-DmyVariableに割り当てる必要があります。

#!/bin/bash 
case $1 in 
-e | --export-variable) 
    myvar=$2 
    shift 2 ;; 
esac 
exec $JAVA_HOME/bin/java -DmyVariable="$myvar" com.myProject.myJob "$myvar" "[email protected]" 

あなたはそれが-eオプションを必要とするか、または適切なデフォルト値を指定するようにスクリプトを変更したい場合があります。これは、問題をリファクタリングする方法のアイデアを伝えることです。

+0

$ 1変数は固定されていません。それは$ 2または$ 3かもしれない多くの場合があります。 –

2

:同じ変数があなたのようにスクリプトを書くことができ、実行

関連する問題