多个条件 Bash IF 语句的正确格式
Correct Formatting of Multiple Condition Bash IF Statement
我正在尝试使用 IF 语句来:
- 检查服务器是否正常运行
- 检查服务器上是否存在文件
到目前为止我的代码
hostname="somehost.com"
file="somefile.txt"
URL="https://${hostname}/some/directory/${file}"
if [ "ping -c 1 -W 1 ${hostname} 2>/dev/null" ] & [ "wget --spider ${URL} 2>/dev/null" ];
then
echo -e "${hostname} is UP and ${file} is AVAILABLE"
else
echo -e "${hostname} is DOWN or ${file} is UNAVAILABLE"
fi
我尝试通过输入不正确的主机名和不正确的文件来测试 IF 语句,但是结果不正确。
当前输出
somehost.com is UP and somefile.txt is AVAILABLE
预期输出
somehost.com is DOWN and somefile.txt is DOWN
expression1 && expression2
如果 expression1 和 expression2 都为真,则为真。
expression1 || expression2
如果表达式 1 或 表达式 2 为真,则为真。
&&和||如果 expression1 的值足以确定整个条件表达式的 return 值,则运算符不会计算 expression2。
发件人:https://www.gnu.org/software/bash/manual/bash.html#Compound-Commands
我正在尝试使用 IF 语句来:
- 检查服务器是否正常运行
- 检查服务器上是否存在文件
到目前为止我的代码
hostname="somehost.com"
file="somefile.txt"
URL="https://${hostname}/some/directory/${file}"
if [ "ping -c 1 -W 1 ${hostname} 2>/dev/null" ] & [ "wget --spider ${URL} 2>/dev/null" ];
then
echo -e "${hostname} is UP and ${file} is AVAILABLE"
else
echo -e "${hostname} is DOWN or ${file} is UNAVAILABLE"
fi
我尝试通过输入不正确的主机名和不正确的文件来测试 IF 语句,但是结果不正确。
当前输出
somehost.com is UP and somefile.txt is AVAILABLE
预期输出
somehost.com is DOWN and somefile.txt is DOWN
expression1 && expression2
如果 expression1 和 expression2 都为真,则为真。
expression1 || expression2
如果表达式 1 或 表达式 2 为真,则为真。
&&和||如果 expression1 的值足以确定整个条件表达式的 return 值,则运算符不会计算 expression2。
发件人:https://www.gnu.org/software/bash/manual/bash.html#Compound-Commands