if..fi
設定ファイルのJavaバージョンでこのケースが機能するように努力しています。 /wrapper.conf
出力が次のwrapper.conf
場合java
2つのオプションがあります。
1.wrapper.java.command=/apps/jdk1.8.0_191/bin/java
2.wrapper.java.command=java
Javaバージョンが長い場合は印刷する必要があります。
単にJavaの場合はデフォルトのJavaを使用し、Javaのバージョンを確認する必要があることを意味します。
以下のスクリプトを使用すると取得できません。次のエラーが発生します。
integer expression expected
Usage: java [-options] class [args...]
(to execute a class)
or java [-options] -jar jarfile [args...]
(to execute a jar file)
スクリプトの断片:
for file in $(echo $folder/conf/wrapper.conf)
do
JavaVersion=$(grep "command" $file | awk -F "=" '{print $NF}')
if [ "$JavaVersion" -eq "java" ]; then
java -version 2>&1 >/dev/null | grep 'java version'
else
$JavaVersion
fi
ベストアンサー1
とは別にdone
あなたのループはありませんfra-sanがコメントしました-eq
整数の比較比較を要求した文字列とエラーについて文句を言いながら、引数なしで特定のJavaバイナリを呼び出して、見ているエラーの後半を生成しました。
どちらの場合もJavaバージョンが必要になる可能性があるため、$JavaVersion
とにかくそうします。
JavaVersion=$(grep wrapper.java.command= "$file" | awk -F "=" '{print $NF}')
"$JavaVersion" -version
Wrapper.java.commandの値が完全でない場合は印刷し、java
そうでなければ実行するという究極の目標を誤解したようですjava -version
。
if grep -Fxq wrapper.java.command=java "$file"
then
java -version 2>&1 | grep 'java version'
else
grep ^wrapper.java.command= "$file" | cut -d= -f2-
fi