For some reason, this function is working properly. The terminal is outputting

newbootstrap.sh: 2: Syntax error: "(" unexpected

Here is my code (line 2 is function MoveToTarget() {)

#!/bin/bash
function MoveToTarget() {
    # This takes two arguments: source and target
    cp -r -f "$1" "$2"
    rm -r -f "$1"
}

function WaitForProcessToEnd() {
    # This takes one argument. The PID to wait for
    # Unlike the AutoIt version, this sleeps for one second
    while [ $(kill -0 "$1") ]; do
        sleep 1
    done
}

function RunApplication() {
    # This takes one application, the path to the thing to execute
    exec "$1"
}

# Our main code block
pid="$1"
SourcePath="$2"
DestPath="$3"
ToExecute="$4"
WaitForProcessToEnd $pid
MoveToTarget $SourcePath, $DestPath
RunApplication $ToExecute
exit
Edit
Report