2013-10-09 2 views
0

다음 코드 단편은 잘 작동하지만, 글꼴 목록을 맨 위에 지정하는 것을 약간 최적화하고 싶습니다. 이제는 동일한 글꼴 이름을 다시 지정할 때마다 함수를 호출 할 때뿐만 아니라 맨 위에 지정해야합니다. 그 위에 글꼴을 그룹화하고 각 요소를 읽으려면 함수를 호출하는 방법은 무엇입니까? 나는 쉘 스크립트에서이 작업을 수행하는 방법을 잘 모르겠어요 (OSX,하지만 난 그게 일반적인 유닉스 쉘에 가까운 생각) 몇 가지 옵션이 있습니다배열을 결합하는 방법?

# 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 

답변

1

:

  1. 당신은 할 수 있습니다 all=("${MENU_ENGRUSFRA[@]}" "${DASHBOARD_1[@]}")
  2. process_ipad을 수정하여 배열 이름 대신 글꼴 이름 목록을 간단하게 가져올 수 있습니다. 아마도 바람직 할 것입니다 :

    process_ipad() { 
        fontarr=("[email protected]") 
        ... 
    } 
    
    # all=("${MENU_ENGRUSFRA[@]}" "${DASHBOARD_1[@]}") 
    # process_ipad "${all[@]}" 
    process_ipad "${MENU_ENGRUSFRA[@]}" "${DASHBOARD_1[@]}" 
    
관련 문제