由于某种原因,此功能正常运行,终端正在输出

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

这是我的代码(第2行是MoveToTarget() {函数)
#!/bin/bash
function MoveToTarget() {
    #This takes to 2 arguments: source and target
    cp -r -f "$1" "$2"
    rm -r -f "$1"
}

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

function RunApplication() {
    #This takes 1 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

最佳答案

您使用错误的语法来声明函数。使用此代替:

MoveToTarget() {
    # Function
}

或这个:
function MoveToTarget {
    # function
}

但不是两个。

另外,我看到稍后您会使用逗号分隔参数(MoveToTarget $SourcePath, $DestPath)。这也是一个问题。 bash使用空格分隔参数,而不是逗号。删除逗号,您应该会很高兴。

关于linux - bash语法错误: “(” unexpected,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6347119/

10-10 14:06