我正在用 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”项目的键的“空白”。