मैंने बैश स्क्रिप्टिंग गाइड में व्हॉट्सएप वाले फाइलनाम के साथ काम करने के लिए सरणी के उपयोग का सुझाव दिया है। DashAsBinSh का सुझाव है कि सरणियाँ पोर्टेबल नहीं हैं, इसलिए मैं उन फ़ाइलनामों की सूचियों के साथ काम करने के POSIX अनुरूप तरीके की तलाश में हूं जिनमें व्हॉट्सएप हो सकता है।
मैं नीचे उदाहरण स्क्रिप्ट को संशोधित करने के लिए देख रहा हूं ताकि यह होगा echo
foo/target/a.jar
foo/target/b.jar
bar/target/lol whitespace.jar
यहाँ स्क्रिप्ट है
#!/usr/bin/env sh
INPUT="foo/target/a.jar
foo/target/b.jar
bar/target/b.jar
bar/target/lol whitespace.jar"
# this would be produced by a 'ls' command
# We can execute the ls within the script, if it helps
dostuffwith() { echo $1; };
F_LOCATIONS=$INPUT
ALL_FILES=$(for f in $F_LOCATIONS; do echo `basename $f`; done)
ALL_FILES=$(echo "$ALL_FILES" | sort | uniq)
for f in $ALL_FILES
do
fpath=$(echo "$F_LOCATIONS" | grep -m1 $f)
dostuffwith $fpath
done