#!/bin/bash
# ideone boilerplate: run in temp dir
t=$(mktemp -d -t ideone.XXXXXXXX) || exit
# trap 'rm -rf "$t"' ERR EXIT
cd "$t"
touch one\ file two\ files unquoted\ \*
mkdir zzz
ls -l >&2
for [ z in `echo *` ]; do
echo "$z"
done
if [ test -d $z ]; then
echo "$z is a directory"
fi
trap 'rm -rf "$t"' ERR EXIT
exec >&2
echo ... You probably meant
for z in *; do
echo "$z"
done
# ... or better yet
printf '%s\n' *
if [ -d "$z" ]; then
echo "$z is a directory"
fi
IyEvYmluL2Jhc2gKCgojIGlkZW9uZSBib2lsZXJwbGF0ZTogcnVuIGluIHRlbXAgZGlyCnQ9JChta3RlbXAgLWQgLXQgaWRlb25lLlhYWFhYWFhYKSB8fCBleGl0CiMgdHJhcCAncm0gLXJmICIkdCInIEVSUiBFWElUCmNkICIkdCIKCnRvdWNoIG9uZVwgZmlsZSB0d29cIGZpbGVzIHVucXVvdGVkXCBcKgpta2RpciB6enoKCmxzIC1sID4mMgoKZm9yIFsgeiBpbiBgZWNobyAqYCBdOyBkbwogICAgZWNobyAiJHoiCmRvbmUKCmlmIFsgdGVzdCAtZCAkeiBdOyB0aGVuCiAgICBlY2hvICIkeiBpcyBhIGRpcmVjdG9yeSIKZmkKCnRyYXAgJ3JtIC1yZiAiJHQiJyBFUlIgRVhJVApleGVjID4mMgoKZWNobyAuLi4gWW91IHByb2JhYmx5IG1lYW50Cgpmb3IgeiBpbiAqOyBkbwogICAgZWNobyAiJHoiCmRvbmUKIyAuLi4gb3IgYmV0dGVyIHlldApwcmludGYgJyVzXG4nICoKCmlmIFsgLWQgIiR6IiBdOyB0aGVuCiAgICBlY2hvICIkeiBpcyBhIGRpcmVjdG9yeSIKZmk=