bash脚本中的语法错误

时间:2013-07-21 23:22:26

标签: bash

在命令行编写几个命令时,它可以工作,但是在脚本文件中放置相同的命令会引发错误。 这是我想要做的:

USER=chandan-jay
REPO=test-1
echo "GitHub UserID: $USER"
echo "Repository Name: $REPO"
str={\"name\":\"$REPO\"}
curl_response=($( curl -u "$USER" -H "Content-Type:application/json" https://api.github.com/user/repos -d $str ))
echo ${curl_response[@]}

在shell上执行上面的代码行后如果工作文件。 将它们放在.sh文件中时会引发语法错误(行号13为curl_response):

__git_create_repo_CLI.sh: 13: git_create_repo_CLI.sh: Syntax error: "(" unexpected__

4 个答案:

答案 0 :(得分:2)

将解释器设置为bash,如下所示:

#!/bin/bash

答案 1 :(得分:1)

this看起来像你想要的吗?我只是在我的用户名下运行脚本,在bash下运行,在Mac OS X上是/ bin / sh,这就是我得到的。

答案 2 :(得分:1)

在执行代码时尝试使用bash而不是sh。 看看这个以获得更好的解释 http://viewsby.wordpress.com/2011/11/16/shell-script-arrays-syntax-error-unexpected/

答案 3 :(得分:-1)

尝试更改此

curl_response=($( curl -u "$USER" -H "Content-Type:application/json" https://api.github.com/user/repos -d $str ))

到这个

curl_response=`curl -u "$USER" -H "Content-Type:application/json" https://api.github.com/user/repos -d $str`

希望这有帮助