2011-06-09 10 views
19

को छोड़कर एक बैश सरणी के सभी तत्व प्राप्त करना मेरे पास एक अनुक्रमित बैश सरणी है और मैं "$ {a [@]}" जैसी अभिव्यक्ति का उपयोग करना चाहता हूं, सिवाय इसके कि मैं इसे [0] शामिल नहीं करना चाहता हूं। सबसे अच्छा जो मैं सोच सकता हूं वह यह है:पहले

j=0 
for i in "${a[@]}" 
do 
    b[j]=${a[++j]} 
done 

और फिर "$ {b [@]}" का उपयोग करें। क्या कोई बेहतर तरीका है?

उत्तर

31
$ a=(1 2 3) 
$ echo "${a[@]:1}" 
2 3 
+0

लगता है कि उसे सरणी बी तक पहुंचने की आवश्यकता है। बी = ($ {ए [@]: 1}) – Jasonw

+0

हाँ, यह काम करता है! क्या आपको पता चल जाएगा कि बैश मैनुअल में वर्णित है? – grok12

+3

वे ** Arrays ** और ** पैरामीटर विस्तार ** अनुभाग में हैं। कि वे एक साथ इस्तेमाल किया जा सकता है स्पष्ट रूप से उल्लेख नहीं किया गया है, लेकिन यह काम करता है। –

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