2

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

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

4 回答 4

2

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

#!/bin/bash

于 2013-07-21T23:30:36.270 回答
1

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

于 2013-07-21T23:36:05.950 回答
1

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

于 2013-07-22T20:10:21.477 回答
-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`

希望这可以帮助

于 2013-07-21T23:33:09.520 回答