Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

case in bash: "line 4: syntax error near unexpected token `)'"

case in bash:

line 4: syntax error near unexpected token `)'

I'm trying to use the command case in Bash (on my Raspberry Pi again), but when I run my script, Bash spits out errors. I've read over many tutorials and I think I'm doing the same thing as them, but something's just not right.

Here's my code:

#!/bin/bash
case "$1" in
        help) echo "You asked for help. Sorry, I'm busy."
        *) echo "You didn't say anything. Try 'help' as the first argument."
esac

Here's the output (the filename is newmkdir and I ran it with no arguments):

./newmkdir: line 4: syntax error near unexpected token `)'
./newmkdir: line 4: `   *) echo "You didn't say anything. Try 'help' as the first argument."'

I'm trying to have my script interpret help and then make anything else output the next line.

(Note this is just an example of a glitched script. This script has no meaning and might not even make sense, it's just a test.)

like image 260
Eric Reed Avatar asked Oct 21 '15 01:10

Eric Reed


1 Answers

You are missing ;; at the end of each pattern:

#!/bin/bash
case "$1" in
        help)
            echo "You asked for help. Sorry, I'm busy."
            ;;
        *)
            echo "You didn't say anything. Try 'help' as the first argument."
            ;;
esac

Think of it as a break statement in a programming language. They are compulsory on case.

like image 129
Alvaro Gutierrez Perez Avatar answered Sep 18 '22 00:09

Alvaro Gutierrez Perez