#!/bin/bash
set -- -l . # for test purposes: set argument list to long-list current directory
usage() {
printf >&2 'USAGE: %s [-l] path\n' "$0"
exit 2
}
long=0
while getopts 'l' option; do
case "$option" in
l) long=1 ;;
*) usage ;;
esac
done
shiftval=$(( OPTIND - 1 ))
if (( $# < shiftval )); then
usage
fi
shift "$shiftval"
if (( $# != 1 )); then # 1 is number of required positional arguments
usage
fi
path="$1"
if (( long == 1 )); then
ls -l -- "$path"
else
ls -- "$path"
fi
IyEvYmluL2Jhc2gKCnNldCAtLSAtbCAuICMgZm9yIHRlc3QgcHVycG9zZXM6IHNldCBhcmd1bWVudCBsaXN0IHRvIGxvbmctbGlzdCBjdXJyZW50IGRpcmVjdG9yeQoKdXNhZ2UoKSB7CglwcmludGYgPiYyICdVU0FHRTogJXMgWy1sXSBwYXRoXG4nICIkMCIKCWV4aXQgMgp9Cgpsb25nPTAKCndoaWxlIGdldG9wdHMgJ2wnIG9wdGlvbjsgZG8KCWNhc2UgIiRvcHRpb24iIGluCgkJbCkgbG9uZz0xIDs7CgkJKikgdXNhZ2UgOzsKCWVzYWMKZG9uZQoKc2hpZnR2YWw9JCgoIE9QVElORCAtIDEgKSkKaWYgKCggJCMgPCBzaGlmdHZhbCApKTsgdGhlbgoJdXNhZ2UKZmkKc2hpZnQgIiRzaGlmdHZhbCIKCmlmICgoICQjICE9IDEgKSk7IHRoZW4gIyAxIGlzIG51bWJlciBvZiByZXF1aXJlZCBwb3NpdGlvbmFsIGFyZ3VtZW50cwoJdXNhZ2UKZmkKCnBhdGg9IiQxIgoKaWYgKCggbG9uZyA9PSAxICkpOyB0aGVuCglscyAtbCAtLSAiJHBhdGgiCmVsc2UKCWxzIC0tICIkcGF0aCIKZmk=