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