
Useful Elements for bash Scripts
|
223
echo "$0 ran at" $(date) >> delete.log
if [ ! -e "$1" ]
then
echo "$1 does not exist" >> delete.log
elif [ -f "$1" ]
then
echo -n "file $1 " >> delete.log
if rm "$1" 2>> delete-err.log
then
echo "deleted" >> delete.log
else
echo "not deleted" >> delete.log
fi
elif [ -d "$1" ]
then
echo -n "directory $1 " >> delete.log
if rmdir "$1" 2>> delete-err.log
then
echo "deleted" >> delete.log
else
echo "not deleted" >> delete.log
fi
fi
Now, at last, when you run the command:
admin@server1:~$ ./removefiles "my file"
the last line of delete.log will be:
file my file deleted
Loops
If you want to do something more than once, you need a loop. bash has three fla-
vors:
for, while, and until.
The lovely and talented
for loop has this general appearance:
for arg in list
do
commands
done
It executes the commands action (which can cover as many lines and separate com-
mands as you want) specified between
do and done for each item in list. When the
commands run, they can access the current item from
list through the variable $arg,
The syntax may be a bit confusing at first: in the
for statement you must specify arg
without the dollar sign, but in the commands you must specify $arg with the dollar
sign.
Some simple examples are:
admin@server1:~$ for stooge in moe larry curly
> do