我有以下代码:
PROJECT_TYPES="iPad iPhone"
ANT_TARGET_NAMES="ipadf ipaf"
INDEX=0
for PROJECT_TYPE in $PROJECT_TYPES; do
echo "${PROJECT_TYPE} => ${ANT_TARGET_NAMES[$INDEX]}"
let "INDEX++"
done
显示以下行:
iPad => ipadf ipaf
iPhone =>
如何更改代码以显示:
iPad => ipadf
iPhone => ipaf
???
提前致谢
麦克
答案 0 :(得分:2)
正确的方法是:
INDEX=0
PROJECT_TYPES=(iPad iPhone)
ANT_TARGET_NAMES=(ipadf ipaf)
for PROJECT_TYPE in ${PROJECT_TYPES[*]}
do
echo "${PROJECT_TYPE} => ${ANT_TARGET_NAMES[$INDEX]}"
let "INDEX++"
done
答案 1 :(得分:1)
bash 4有关联数组,所以你可以写:
declare -A targets=([iPad]=ipadf [iPhone]=ipaf)
for project_type in "${!targets[@]}"; do
printf "%s => %s\n" "$project_type" "${targets[$project_type]}"
done
否则,按照ennuikiller的回答声明两个数组,但我会直接迭代索引
projects=(iPad iPhone)
targets=(ipadf ipaf)
for (( i=0; i < ${#projects[@]}; i++ )); do
printf "%s => %s\n" "${projects[$i]}" "${targets[$i]}"
done