সমস্ত কার্যক্ষম পদক্ষেপ (জাভা, পিতা মাতার সন্ধান, ফাইল সম্পাদনা, ...) এক সমাধান
zFileProfile="/etc/profile"
zJavaHomePath=$(readlink -ze $(which java) | xargs -0 dirname | xargs -0 dirname)
echo $zJavaHomePath
echo "export JAVA_HOME=\"${zJavaHomePath}\"" >> $zFileProfile
echo "export PATH=\$PATH:\$JAVA_HOME/bin" >> $zFileProfile
ফলাফল:
# tail -2 $zFileProfile
export JAVA_HOME="/usr/lib/jvm/java-11-openjdk-11.0.7.10-1.el8_1.x86_64"
export PATH=$PATH:$JAVA_HOME/bin
ব্যাখ্যা:
1) আসুন পুরো কমান্ডটি টুকরো টুকরো করে ফেলুন
$(readlink -ze $(which java) | xargs -0 dirname | xargs -0 dirname)
2) জাভা কমান্ড থেকে জাভা পথ সন্ধান করুন
# $(which java)
"/usr/bin/java"
3) প্রতীকী পথ থেকে আপেক্ষিক পথ পান
# readlink -ze /usr/bin/java
"/usr/lib/jvm/java-11-openjdk-11.0.7.10-1.el8_1.x86_64/bin/java"
4) পিতামাতার পথ পান /usr/lib/jvm/java-11-openjdk-11.0.7.10-1.el8_1.x86_64/bin/java
# readlink -ze /usr/bin/java | xargs -0 dirname
"/usr/lib/jvm/java-11-openjdk-11.0.7.10-1.el8_1.x86_64/bin"
5) পিতামাতার পথ পান /usr/lib/jvm/java-11-openjdk-11.0.7.10-1.el8_1.x86_64/bin/
# readlink -ze /usr/bin/java | xargs -0 dirname | xargs -0 dirname
"/usr/lib/jvm/java-11-openjdk-11.0.7.10-1.el8_1.x86_64"