【发布时间】:2020-04-11 04:34:07
【问题描述】:
目标:
我要做的就是检查USER_PARAMETERS_KEYs[j] 是否存在于RPM_PARAMETERS_HASH 中
关联数组。我有一个数组和一个关联数组,如下所示:
预定义:
declare -a USER_PARAMETERS_KEYS='([0]="userField" [1]="fUserField" [2]="srcIPField" [3]="srcPortField" [4]="dstIPField" [5]="dstPortField" [6]="dateField" [7]="timeField")'
declare -A RPM_PARAMETERS_HASH='([timeField]="Time" [userField]="User-Name" [dstIPField]="" [srcIPField]="Source-IP-Address" [dstPortField]="Target-UDP-Port" [fUserField]="Full-Name" [dateField]="Date" [srcPortField]="Source-UDP-Port" )'
我实现了以下内容:
if [[ ${RPM_PARAMETERS_HASH[${USER_PARAMETERS_KEYS[j]}]} ]] ; then
问题
我的问题是当${USER_PARAMETERS_KEYS[j]} 变为等于dstIPField 时,因为它在关联数组中有一个空字符串值,所以尽管键在那里,但不满足 if 条件。
【问题讨论】:
标签: arrays bash associative-array