#!/bin/bash
# ideone boilerplate - we can't write files in the home directory;
# so create a temporary directory for our files instead
t=$(mktemp -d -t ideone.XXXXXXXXXXXX) || exit
trap 'rm -rf "$t"' ERR EXIT
cd "$t"
touch "foo
bar" "*" "\"sick'ly\""
echo "*** naive attempt (broken quoting) ***"
count=0
for file in ./*; do
((++count))
echo $count: $file
done
echo "$count files total"
echo "*** ls (broken) ***"
ls | nl
echo "*** find (mildly broken) ***"
find . -type f | nl
echo "*** bash array ***"
files=(*)
printf ">>%s<<\n" "${files[@]}"
echo "${#files[@]} files total"
IyEvYmluL2Jhc2gKCiMgaWRlb25lIGJvaWxlcnBsYXRlIC0gd2UgY2FuJ3Qgd3JpdGUgZmlsZXMgaW4gdGhlIGhvbWUgZGlyZWN0b3J5OwojIHNvIGNyZWF0ZSBhIHRlbXBvcmFyeSBkaXJlY3RvcnkgZm9yIG91ciBmaWxlcyBpbnN0ZWFkCnQ9JChta3RlbXAgLWQgLXQgaWRlb25lLlhYWFhYWFhYWFhYWCkgfHwgZXhpdAp0cmFwICdybSAtcmYgIiR0IicgRVJSIEVYSVQKY2QgIiR0IgoKdG91Y2ggImZvbwpiYXIiICIqIiAiXCJzaWNrJ2x5XCIiCgplY2hvICIqKiogbmFpdmUgYXR0ZW1wdCAoYnJva2VuIHF1b3RpbmcpICoqKiIKY291bnQ9MApmb3IgZmlsZSBpbiAuLyo7IGRvCiAgICAoKCsrY291bnQpKQogICAgZWNobyAkY291bnQ6ICRmaWxlCmRvbmUKZWNobyAiJGNvdW50IGZpbGVzIHRvdGFsIgoKZWNobyAiKioqIGxzIChicm9rZW4pICoqKiIKbHMgfCBubAoKZWNobyAiKioqIGZpbmQgKG1pbGRseSBicm9rZW4pICoqKiIKZmluZCAuIC10eXBlIGYgfCBubAoKZWNobyAiKioqIGJhc2ggYXJyYXkgKioqIgpmaWxlcz0oKikKcHJpbnRmICI+PiVzPDxcbiIgIiR7ZmlsZXNbQF19IgplY2hvICIkeyNmaWxlc1tAXX0gZmlsZXMgdG90YWwi