As a finale to this chapter, we can group a few features that we have learned together and build a script that prompts the operator for a filename, a search string, and an operation to carry out with the grep
command. We can create the script as $HOME/bin/search.sh
and don't forget to make it executable:
#!/bin/bash #Author: @theurbanpenguin usage="Usage: search.sh file string operation" if [ ! $# -eq3 ] ; then echo "$usage" exit 2 fi [ ! -f $1 ]&& exit 3 case $3 in [cC]) mesg="Counting the matches in $1 of $2" opt="-c" ;; [pP]) mesg="Print the matches of $2 in $1" opt="" ;; [dD]) mesg="Printing all lines but those matching $3 from $1" opt="-v" ;; *) echo "Could not evaluate $1 $2 $3";; esac echo $mesg grep $opt $2 $1
We start by checking for exactly three input arguments using the following code:
if [ ! $# -eq3 ] ; then echo "$usage" exit 2 fi
The next check uses a command-line list to exit the script if...