I am using code as below to save data in associated array on Mac OS 10.8.
#!/bin/sh
storyboardExt=".storyboard"
stringsExt=".strings"
newStringsExt=".strings.new"
oldStringsExt=".strings.old"
localeDirExt=".lproj"
baseLprojDir="Base${localeDirExt}"
echo "${baseLprojDir}"
# Find Base.lproj path
baseLprojPath=`find . -name "${baseLprojDir}" -print`
echo "baseLprojPath= ${baseLprojPath}"
#Find storyboard file full path inside project folder
for storyboardPath in `find "${baseLprojPath}" -name "*${storyboardExt}" -print`
do
echo "storyboardPath= ${storyboardPath}"
# Get Base strings file path
baseStoryboardStringsPath=$(echo "$storyboardPath" | sed "s/$storyboardExt/$stringsExt/")
echo "baseStoryboardStringsPath= ${baseStoryboardStringsPath}"
storyboardStringsFile=$(basename "$baseStoryboardStringsPath" "${stringsExt}")
echo "storyboardStringsFile= ${storyboardStringsFile}"
baseStringsArray["${storyboardStringsFile}"]="${baseStoryboardStringsPath}"
echo ${baseStringsArray[$storyboardStringsFile]}
done
for baseStringsPath in "${baseStringsArray[@]}"
do
echo "baseStringsArray= $baseStringsPath"
done
I got result as below, I am not sure why associated array only have one element, can you help me?
Base.lproj
baseLprojPath= ./SingleStoryboardLocalize/Base.lproj
storyboardPath= ./SingleStoryboardLocalize/Base.lproj/MainStoryboard_iPad.storyboard
baseStoryboardStringsPath= ./SingleStoryboardLocalize/Base.lproj/MainStoryboard_iPad.strings
storyboardStringsFile= MainStoryboard_iPad
./SingleStoryboardLocalize/Base.lproj/MainStoryboard_iPad.strings
storyboardPath= ./SingleStoryboardLocalize/Base.lproj/MainStoryboard_iPhone.storyboard
baseStoryboardStringsPath= ./SingleStoryboardLocalize/Base.lproj/MainStoryboard_iPhone.strings
storyboardStringsFile= MainStoryboard_iPhone
./SingleStoryboardLocalize/Base.lproj/MainStoryboard_iPhone.strings
baseStringsArray= ./SingleStoryboardLocalize/Base.lproj/MainStoryboard_iPhone.strings
One more question, why can't I use "InfoPlist.strings" as associated array index? I have no way to solve it so that I used "InfoPlist" as index...