2015-10-14 10 views
8

के लिए पार्टी की योजना बनाई रिक्त स्ट्रिंग पारित करने के लिए मैं के लिए लूप एक पार्टी के लिए मानों में से एक के रूप में एक खाली स्ट्रिंग पास करना चाहते हैं - इस तरह:कैसे पाश

for var in "" A B C; do 
    ... 
done 

यह काम करता है। हालांकि, मैं इस तरह, एक चर में संभावित मान संग्रहीत करना चाहते हैं: यहाँ

VARS="" A B C 
for var in $VARS; do 
    ... 

, खाली स्ट्रिंग नजरअंदाज कर दिया है (या सभी मूल्यों concatenated रहे हैं अगर मैं for var in "$VARS" उपयोग करें)। क्या इसे हल करने का कोई आसान तरीका है?

उत्तर

10

आप नहीं कर सकते। ऐसा मत करो। एक सरणी का प्रयोग करें।

यह Bash FAQ 050 का एक संस्करण है।

VARS=("" A B C) 
for var in "${VARS[@]}"; do 
    : ... 
done 

और तुम लगभग कभी नहीं एक गैर उद्धृत चर (for var in $VARS) की तरह उपयोग करना चाहते हैं।

6

मैं एक सरणी का उपयोग कर

#!/bin/bash 

array=("" 1 2 "") 

for i in "${array[@]}";do 
    echo $i 
done 
+0

नोट सुझाव है: चारों ओर उद्धरण * "$ {सरणी [@]}" * महत्वपूर्ण हैं, अन्यथा यह काम नहीं करेगा। –