मैं बैश स्क्रिप्टिंग के लिए काफी नया हूं। मेरे पास एक "टेस्टस्क्रिप्ट" है, जिसे मैंने अधिक उन्नत / उपयोगी स्क्रिप्ट के लिए आधार के रूप में उपयोग किया है:
#!/bin/bash
files=$1
for a in $files
do
echo "$a"
done
जब मैं इसे किसी भी उद्धरण के बिना कहता हूं तो यह एक निर्देशिका में एक फ़ाइल उठाता है:
testscript *.txt
लेकिन जब मैं इसे उद्धरण के साथ कहता हूं तो यह सही ढंग से काम करता है और सभी पाठ फ़ाइलों को चुनता है:
testscript '*.txt'
यहाँ क्या हो रहा है?
for a in "$@"; do
(याfor a; do
) है, इस प्रकार ग्लोब को बाहरी शेल पर छोड़ना है, उद्धरणों को छोड़ना नहीं है।