Using functions in menus
In Chapter 6, Iterating with Loops, we created the menu.sh file. Menus are great targets to use functions, as the case statement is maintained very simply with single-line entries, while the complexity can still be stored in each function. We should consider creating a function for each menu item. If we copy the previous $HOME/bin/menu.sh to $HOME/bin/menu2.sh, we can improve the functionality. The new menu should look like the following code:
#!/bin/bash
# Author: @likegeeks
# Web: likegeeks.com
# Sample menu with functions
# Last Edited: April 2018
to_lower() {
input="$1"
output=$( echo $input | tr [A-Z] [a-z])
return $output
}
do_backup() {
tar -czvf $HOME/backup.tgz ${HOME}/bin
}
show_cal() {
if [ -x /usr/bin/ncal ] ; then
command="/usr/bin/ncal -w"
else
command="/usr/bin/cal"
fi
$command
}
while true
do
clear
echo "Choose an item: a, b or c"
echo "a: Backup"
echo "b: Display Calendar...