2013-07-21 99 views
2

在命令行写入很少的命令时,它可以工作,但是将其放在脚本文件中会引发错误。 这里就是我想要做: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[@]} 
上面的代码行执行时

上壳行后,如果工程文件。 当在sh文件把它们放在一起,它抛出语法错误(行号13为curl_response):

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

格式化提示:缩进每行用四个空格来格式化代码块。 – icktoofay

+0

此代码适用于我,一旦我更改了用户名 – hd1

+0

您确定您正在使用Bash解释器运行您的脚本吗? – ruakh

回答

2

设置你的解释打坏,像这样:

#!/bin/bash

-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` 

希望这有助于

+0

** - 1 **否否否否否。 [没有反引号。](http://mywiki.wooledge.org/BashFAQ/082)此外,这现在将变量设置为标量而不是数组。 – michaelb958

1

是否this样子,你想要什么?我只是在bash下运行这个脚本,用我的用户名保持不变,这是Mac OS X上的/ bin/sh,这就是我得到的。