多个条件 Bash IF 语句的正确格式

Correct Formatting of Multiple Condition Bash IF Statement

我正在尝试使用 IF 语句来:

  1. 检查服务器是否正常运行
  2. 检查服务器上是否存在文件

到目前为止我的代码

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