case "$1" in
start)
start ;;
stop)
stop ;;
restart)
stop; start ;;
*)
echo $"Usage: $0 {start|stop|restart}"
exit 1
esac
# Basic syntax:
case "STRING" in
patterns)
echo "commands to perform if patterns matched STRING"
;;
to)
echo "commands to perform if to matched STRING"
;;
search)
echo "commands to perform if search matched STRING"
;;
*)
echo "anything that wasn't matched by the previous patterns"
exit 1
;;
esac
# Example usage:
# If you want to write a bash script where you ask the user how to proceed, you
# could do something like this:
read -r -p $'
Do you want to perform this action? (y/n/q): ' RESPONSE
case $RESPONSE in
[Yy]*)
echo "The user chose y"
;;
[Nn]*)
echo "The user chose n"
;;
[Qq]*)
echo "The user chose q, script aborted"
exit 0
;;
*)
echo "The user chose something other than y, n, or q"
;;
esac
# Note, the patterns like [Yy]* will match the string in $RESPONSE if that
# string starts with Y or y followed by any number of other characters. So
# it would also match Yes, yes, yertyujiwjwijdwi, etc
# Note, if you want this message to keep repeating until the user types q, put
# the above in a while loop that never ends (e.g. while true; do ... done)
case expression in
pattern1 )
statements ;;
pattern2 )
statements ;;
...
esac
#!/bin/bash
$web="example.com"
case $web in
forest.com) echo "It's forest.";;
animal|human) echo "Maybe animal or maybe human";;
example.com) echo "This is a site!";;
*) echo $web;;
esac