在bash中通过索引访问数组项
我有以下代码:在bash中通过索引访问数组项,bash,Bash,我有以下代码: 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 => 如何更改代码以使其显示
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
提前谢谢
Mike执行此操作的正确方法是:
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
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
projects=(iPad-iPhone)
目标=(ipadf ipaf)
对于((i=0;i<${#项目[@]};i++);做
printf“%s=>%s\n”“${projects[$i]}”“${targets[$i]}”
完成
foo=“bar baz”
创建一个包含bar baz
内容的字符串。在某些上下文中,字符串可以被分割成序列,因为它们的插值方式(空格分割),但它们不是列表