以下代码段运行良好,但我想优化一点,我在上面指定字体列表。现在我必须在每次给出相同的字体名称时指定顶部和调用函数。如何将这些字体分组在顶部然后只调用函数以读取每个元素?我不确定如何在shell脚本中执行此操作(OSX,但我认为它与常见的unix shell非常接近)
# font list
MENU_ENGRUSFRA=("menu-engrusfra" "menu-engrusfra")
DASHBOARD_1=("dashboard-1" "dashboard-1")
# ... more goes here
process_ipad() {
fontarr=("${!1}")
project=${fontarr[0]}${PROJECT_EXT}
hdfnt=${fontarr[1]}${HD_SUFFIX_IPAD}
sdfnt=${fontarr[1]}
# create HD .fnt
GDCL $project $OUTPUT_IPAD_DIR$hdfnt
# need arm conv for HD?
contains $hdfnt "arm" && $ARM_CONV $OUTPUT_IPAD_DIR$hdfnt$FNT_EXT
# create SD .fnt
GDCL $project $OUTPUT_IPAD_DIR$sdfnt -rfs 0.5
# need arm conv for SD?
contains $sdfnt "arm" && $ARM_CONV $OUTPUT_IPAD_DIR$sdfnt$FNT_EXT
echo "Done $sdfnt"
}
process_ipad MENU_ENGRUSFRA[@]
process_ipad DASHBOARD_1[@]
# sadly I have to mention here them as well
答案 0 :(得分:1)
有几种选择:
all=( "${MENU_ENGRUSFRA[@]}" "${DASHBOARD_1[@]}")
您可以修改process_ipad
以简单地获取字体名称列表,而不是数组名称。这可能更可取:
process_ipad () {
fontarr=( "$@" )
...
}
# all=("${MENU_ENGRUSFRA[@]}" "${DASHBOARD_1[@]}")
# process_ipad "${all[@]}"
process_ipad "${MENU_ENGRUSFRA[@]}" "${DASHBOARD_1[@]}"