A Demo to process command line arguments.
#!/bin/bash
# -----------------------------------------------------------------------------
# config item list
# -----------------------------------------------------------------------------
arg1="default value for arg1"
arg2="default value for arg2"
arg3="default value for arg3"
# -----------------------------------------------------------------------------
# functions
# -----------------------------------------------------------------------------
help()
{
echo "Demo:"
echo "$ $0 --arg1 'Demo' --arg2 '1.0.0' --arg3 '01'"
return 0
}
# -----------------------------------------------------------------------------
# config item list
# -----------------------------------------------------------------------------
while [[ $# -ne 0 ]];
do
case "$1" in
-h|--help)
help
exit 0
;;
--arg1)
arg1=$2
shift; shift;
;;
--arg2)
arg2=$2
shift; shift
;;
--arg3)
arg3=$2
shift; shift
;;
*)
echo "argument $1 not identified, use -h for help."
exit 1
;;
esac
done
# -----------------------------------------------------------------------------
# show/use values
# -----------------------------------------------------------------------------
echo "arg1=$arg1"
echo "arg2=$arg2"
echo "arg3=$arg3"
A demo to process log:
#!/bin/bash
LOG_CMD_FLAG=Yes
LOG_FILE=/var/tmp/logcmd.log
logcmd()
{
case "$LOG_CMD_FLAG" in
y*|Y*)
date +"[%Y-%m-%d %H:%M:%S]" | tr -d '\n' >>$LOG_FILE
echo " Run command [$@]" >>$LOG_FILE
"$@" >>$LOG_FILE
;;
*)
return 0
;;
esac
}
logcmd ls --color $HOME
logcmd df -h
logcmd tree .
logcmd ls $HOME
echo "Log file: $LOG_FILE"
echo "============================================================================="
cat $LOG_FILE
echo "============================================================================="