所以我希望有一个自动Bash脚本来检查java,如果它不存在或超级旧版本(低于7),它会安装它。
我有一些有用的东西,但它会运行bash脚本的所有部分,产生奇怪的结果。
代码:
#!/bin/bash
# This file will call versions and install if necessary
version_call_java = $(java -version)
java_call_len = ${#version_call_java}
if [[ $version_call_java == *"not found"* ]]; then
echo "It's not there!"
sudo apt-get install java
echo "Installing Java"
elif [[ $version_call_java == *"version*" ]]
echo "Its there!"
fi
date
代码的结果:
第5,6和13行不应该运行。
我的逻辑也正确吗?如果机器没有java,我会查找“未找到”字样。也许“识别”更好但不确定是否存在一个布尔值,如果软件程序存在于机器上是否存在。
答案 0 :(得分:1)
以下是您的脚本的工作版本:
#!/bin/bash
# This file will call versions and install if necessary
version_call_java=$(java -version)
java_call_len=${#version_call_java}
if [[ $version_call_java == *"not found"* ]]; then
echo "It's not there!"
sudo apt-get install java
echo "Installing Java"
elif [[ $version_call_java == *"version"* ]]; then
echo "Its there!"
fi
date
有3个问题。
1)version_call_java = $(java -version)<< =在为变量赋值时不需要空格。
2)你需要在elseif条件之后添加。
elif [[ $version_call_java == *"version"* ]]; then
3)*"version*"
应为*"version"*