Bash 测试两个变量是否同时为空

Bash 测试两个变量是否同时为空,bash,variables,conditional-operator,Bash,Variables,Conditional Operator,我想在相同的if条件下测试这两个变量 目前,我正在使用[[$var]]测试一个变量,但对两个变量使用相同的方法不起作用 为了做到这一点,我尝试: if [[ &var1 && &var2 ]]; then or if [[ &ipAddress ]] && [[ &bcastAddress ]]; then 有限制吗 您可以使用此组合测试: [[ -z "${var1}${var2}" ]] 或在相同的条件下进行单独测试,如果

我想在相同的if条件下测试这两个变量

目前,我正在使用[[$var]]测试一个变量,但对两个变量使用相同的方法不起作用

为了做到这一点,我尝试:

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

有限制吗

您可以使用此组合测试:

[[ -z "${var1}${var2}" ]]
或在相同的
条件下进行单独测试,如果
条件:

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

我经常用算术来处理这类事情。例如:

case "$(((!${#var1}&&!${#var2})*${#ip}))" in 
(0) ! echo ERROR;; 
(${#bcast}) echo '$ips len is equal to $bcasts and neither are zero';;
esac
当然,这里不需要
案例

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

为什么变量前面有
&
,而不是
$
?在
[[…]]]
中不需要双引号。是的,这是正确的,但也不会造成任何不利影响。IMO应尽可能保持在BASH中引用的习惯:)