bash语法错误:“”unexpected“

出于某种原因,此function正常工作,terminal正在输出

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

什么是Linux中的rc.status文件

从CVS *,v文件的存档中恢复文件

输出bash脚本的格式

BASH或PHP的服务器维护脚本?

Linux Bash。 2线有什么区别?

FOR循环variables中的空格问题 – 批处理脚本

Bash脚本:糟糕的解释器

如何在批处理脚本中以整数格式输出文件大小

使用脚本构build新计算机

awk脚本总是打印sum = 0

您正在使用错误的语法来声明函数。 用这个代替:

MoveToTarget() { # Function }

或这个:

function MoveToTarget { # function }

但不是两个。

另外,我看到稍后使用逗号分隔参数( MoveToTarget $SourcePath,$DestPath )。 这也是一个问题。 bash使用空格来分隔参数,而不是逗号。 删除逗号,你应该是金色的。

我也是在bash脚本中定义函数的新手。 我使用的版本是4.3.11(1): – Ubuntu 14.04上的release(x86_64-pc-linux-gnu)

我不知道为什么,但是以关键字function开头的定义从来不适用于我。

定义如下

function check_and_start { echo Hello }

产生错误信息:

Syntax error: "}" unexpected

如果我把{像一个新的行:

function my_function { echo Hello. }

它打印一个Hello. 当我运行脚本时,即使我根本不调用这个函数,这也是我们想要的。

我不知道为什么这不起作用,因为我也看了很多教程,他们都把开放大括号放在第一行的末尾。 也许这是我们使用的bash版本? 无论如何,只是把它放在这里为您的信息。

我必须使用C风格的函数定义:

check_and_start() { echo $1 } check_and_start World! check_and_start Hello,World!

并按预期工作。

相关文章

### 创建一个gRPC服务项目(grpc服务端)和一个 webapi项目(...
一、SiganlR 使用的协议类型 1.websocket即时通讯协议 2.Ser...
.Net 6 WebApi 项目 在Linux系统上 打包成Docker镜像,发布为...
一、 PD简介PowerDesigner 是一个集所有现代建模技术于一身的...
一、存储过程 存储过程就像数据库中运行的方法(函数) 优点:...
一、Ueditor的下载 1、百度编辑器下载地址:http://ueditor....