2010-12-09 17 views
5

मेरे पास एक स्क्रिप्ट है जिसे सहयोगी सरणी का उपयोग करने की आवश्यकता है। Ksh के लिए नया होने के नाते, मैं कहीं भी खोजने में असमर्थ हूं कि ksh सहयोगी सरणी का समर्थन करता है। जब मैं नियमित सरणी वाक्यविन्यास और असाइन करने का प्रयास करता हूं, तो मुझे एक त्रुटि मिलती है कि सूचकांक इतना बड़ा नहीं हो सकता है। क्या एसएसएच सहयोगी सरणी का समर्थन करता है? यदि नहीं, तो वैकल्पिक समाधान क्या है?ksh सहयोगी सरणी

निम्नलिखित करने की आवश्यकता है: $ {array [$ name]} = मूल्य और बाद में कोड में, मुझे $ {array [$ name]} के लिए मूल्य पढ़ने की आवश्यकता है। मेरे पास लगभग 2000 मान संग्रहीत किए जाने हैं और हर बार स्क्रिप्ट चलाने के लिए सरणी से पढ़ा जाता है।

दुर्भाग्यवश, मैं स्क्रिप्ट के अंदर विरासत मॉड्यूल की सीमा के कारण perl का उपयोग नहीं कर सकता। किसी भी मदद, टिप्स या तकनीकों की सराहना करें।

उत्तर

8

ksh typeset कमांड का उपयोग एक एसोसिएटिव सरणी घोषित करने के लिए किया जाता है।

$ typeset -A age 
$ age[bob]=42 
$ age[alice]=31 
$ print ${age[bob]} 
42 
+1

हाय, मुझे लगता है कि कोशिश की और मैं निम्नलिखित त्रुटि मिलती है: $ ./test.sh paramPassed: ./test.sh 0 ./test.sh[6]: टाइपसेट: 0403- 010 इस आदेश के लिए एक निर्दिष्ट ध्वज मान्य नहीं है। मैं AIX6.1 – Kiran

+0

पर और लाइन 6 पर कोड चला रहा हूं: टाइपसेट -एक testArray – Kiran

+3

@ किरण: अपने शेबांग को 'ksh' के बजाय' ksh93' में बदलने का प्रयास करें। –

संबंधित मुद्दे