Using functions in menus
In the last chapter, 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: @theurbanpenguin
# Web: www.theurbapenguin.com
# Sample menu with functions
# Last Edited: Sept 2015
function to_lower {
input="$1"
output=$(tr [A-Z] [a-z] <<< "$input")
return $output
}
function do_backup {
tar -czvf $HOME/backup.tgz ${HOME}/bin
}
function 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...