我有以下代码:
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???
提前感谢
麦克
发布于 2011-09-08 00:26:23
正确的方法是:
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发布于 2011-09-08 01:14:08
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]}"
donehttps://stackoverflow.com/questions/7337178
复制相似问题