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

时间:2014-12-04 10:11:34

标签: bash variables conditional-operator

我想在同一条件下测试两个变量。

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

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

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

有限制吗?

2 个答案:

答案 0 :(得分:5)

您可以使用此组合测试:

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

OR在相同if条件下单独进行测试:

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

答案 1 :(得分:1)

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

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