diff options
Diffstat (limited to 'examples/scripts.v2/lowercase')
-rw-r--r-- | examples/scripts.v2/lowercase | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/examples/scripts.v2/lowercase b/examples/scripts.v2/lowercase new file mode 100644 index 00000000..fd2ec5d6 --- /dev/null +++ b/examples/scripts.v2/lowercase @@ -0,0 +1,44 @@ +#! /bin/bash +# +# original from +# @(#) lowercase.ksh 1.0 92/10/08 +# 92/10/08 john h. dubois iii (john@armory.com) +# +# conversion to bash v2 syntax done by Chet Ramey + +Usage="Usage: $name file ..." +phelp() +{ +echo "$name: change filenames to lower case. +$Usage +Each file is moved to a name with the same directory component, if any, +and with a filename component that is the same as the original but with +any upper case letters changed to lower case." +} + +name=${0##*/} + +while getopts "h" opt; do + case "$opt" in + h) phelp; exit 0;; + *) echo "$Usage" 1>&2; exit 2;; + esac +done + +shift $((OPTIND - 1)) + +for file; do + filename=${file##*/} + case "$file" in + */*) dirname=${file%/*} ;; + *) dirname=. ;; + esac + nf=$(echo $filename | tr A-Z a-z) + newname="${dirname}/${nf}" + if [ "$nf" != "$filename" ]; then + mv "$file" "$newname" + echo "$0: $file -> $newname" + else + echo "$0: $file not changed." + fi +done |