2011-10-01 18 views
6

मैं खोल में तर्क सूची से अधिक पुनरावृति करना चाहते हैं, मुझे पता है किपुनरावृति

for var in [email protected] 

के साथ ऐसा करने पर मैं साथ

for ((i=3; i<=$#; i++)) 

मैं ऐसा करना चाहते हैं इसकी आवश्यकता है क्योंकि पहले दो तर्क लूप में प्रवेश नहीं करेंगे। कोई भी जानता है कि यह कैसे करें? आपकी मदद के लिए तत्पर हैं।

चेंग

उत्तर

9

यह मदद कर सकता है:

for var in "${@:3}" 

अधिक जानकारी के लिए आप देख सकते हैं:

http://www.ibm.com/developerworks/library/l-bash-parameters/index.html

+0

यह काम करता है, धन्यवाद। – user572138

+0

उद्धरणों का उपयोग करें: '" $ {@: 3} "' –

+0

@glennjackman मैंने उत्तर अपडेट किया, अनुस्मारक के लिए धन्यवाद। –

4

reader_1000 provides a nice bash incantation, लेकिन आप उपयोग कर रहे हैं एक पुराने (या सरल) बोर्न शेल आप क्रैकिंग प्राचीन (और इसलिए अत्यधिक पोर्टेबल)

का उपयोग कर सकते हैं
VAR1=$1 
VAR2=$2 
shift 2 
for arg in "[email protected]" 
... 
1

हालांकि यह एक पुराना सवाल है, फिर भी आप ऐसा कर सकते हैं। और, शायद यही वह है जिसे आप पूछ रहे हैं।

for((i=3; i<=$#; i++)); do 
    echo "parameter: ${!i}" #Notice the exclamation here, not the $ dollar sign. 
done 
संबंधित मुद्दे

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