Проверьте, являются ли две переменные пустыми одновременно

Я хотел бы проверить обе переменные в том же условии if.

В настоящее время я использую [[$ var]] для тестирования одного, но то же самое для двух переменных не работает.

Чтобы сделать это, я попробовал:

if [[ &var1 && &var2 ]]; then
or 
if [[ &ipAddress ]] && [[ &bcastAddress ]]; then

Есть ли ограничение?

Ответ 1

Вы можете использовать этот комбинированный тест:

[[ -z "${var1}${var2}" ]]

ИЛИ отдельные тесты в том же состоянии if:

[[ -z "$var1" && -z "$var2" ]]

Ответ 2

Я часто использую арифметику для такого рода вещей. Например:

case "$(((!${#var1}&&!${#var2})*${#ip}))" in 
(0) ! echo ERROR;; 
(${#bcast}) echo '$ips len is equal to $bcasts and neither are zero';;
esac

Конечно, вам не нужен case:

[ "${#var1}${#var2}" -eq "$(((${#ip}&&${#bcast})?0:-1))" ] || handle_it