0

我正在用 bash 编写脚本,并且正在尝试从数组中读取。当我使用以下代码遍历数组时:

for item in "${!functionDict[@]}"
do
    echo "{ $item : ${functionDict[$item]} }" >> array.txt
done

它输出(在“array.txt”中):

{  month_start_date($year_selected, $month_selected) : return $date; }
{  logWarning($message) : return logEvent($message, $c_event_warning); }
{  daysPastLastQuarterX($curYear, $curMonth, $curDay, $selected_year, $selected_quarter,   $nDays) : return false;:return false;:return false;:return false;:return true;:return $delta > $nDays; }
{  setExcelLabelCell($sheet, $cell, $label, $width) :  }
{  asCurrencyString($value) : return formatCurrency($value); }
{  getNumericMonthName($m) : return $numericMonth; }
{  normalize_for_PDF(&$text) :  }

但是,我无法从数组中查询单个元素。

我试过了

string='month_start_date($year_selected, $month_selected)'
echo "test_output: ${functionDict[$string]}"

但我明白了

test_output: <blank>

我还尝试插入一些 RegEx 通配符,以防密钥周围有一些空格。

echo 'size of array: '"${#functionDict[@]}"
echo "TEST: functDict[logWarning] = ${functionDict[.*'logWarning($message)'.*]}"

我明白了

size of array: 157   //I didn't copy/paste all the elements in the array in this post
TEST: functDict[logWarning] = <blank>

唉,我被困住了。我试图取回的内容是“return _ ”项目,或者只是没有任何“return”项目的键的“空白”。

4

1 回答 1

0

回答的学分归@gniourf_gniourf。(看评论)

所有键中都有一个额外的前导空格,我没有包含在我的测试查询中。

(在这里提供一个答案,以便人们知道这个问题已经解决。希望这是对 SO 的好的做法)

于 2013-06-26T21:44:12.400 回答