मैं एक स्क्रिप्ट है कि अधिक मूल्यों की एक सरणी, कुछ इस तरह (इस सवाल के प्रयोजनों के लिए नीचे dumbed) iterates है:बैश सरणी पर इटरेट, विकल्प सरणी नाम गतिशील रूप से, क्या यह संभव है?
COUNTRIES=(ENGLAND SCOTLAND WALES)
for i in ${COUNTRIES[@]}
do
echo "Country is $i "
done
मेरा प्रश्न है, यह गतिशील सरणी स्थानापन्न के लिए संभव है? उदाहरण के लिए, मैं रनटाइम पर फिर से चलाने के लिए सरणी में पास करने में सक्षम होना चाहता हूं। मैं निम्नलिखित की कोशिश की है, लेकिन मुझे लगता है कि मेरी वाक्य रचना गलत हो सकता है
COUNTRIES=(ENGLAND SCOTLAND WALES)
ANIMALS=(COW SHEEP DOG)
loopOverSomething()
{
for i in ${$1[@]}
do
echo "value is $i "
done
}
loopOverSomething $ANIMALS
मैं line 22: ${$2[@]}: bad substitution
+1 अच्छी तरह से कहा गया है और ध्यान केंद्रित समस्या के लिए, नमूना कोड और त्रुटि संदेश भी शामिल थे। सौभाग्य। – shellter