標的:
git リポジトリをローカルで初期化し、同時に bitbucket または github でリモート リポジトリのオリジンを作成するための便利なショートカットを作成しようとしています。この関数は.bashrc
、ホーム ディレクトリのファイルに追加されます。
bash 関数は次のとおりです (エラーが発生します)。
function initg() {
# Defaults to bitbucket API
local API="https://api.bitbucket.org/1.0/repositories/"
local DATA="name=$3&description=$4&is_private=true&scm=git"
local REMOTE="ssh://git@bitbucket.org/$2/$3"
# Use github if specified
if [ "$1" == "gh" ]; then
API="https://api.github.com/user/repos"
DATA='{"name":"$3", "description": "$4"}'
REMOTE="git@github.com:$2/$3"
fi
if [ -z "$API" ] || [ -z "$DATA" ] || [ -z "$REMOTE" ] || [ -z "$2" ]
then
echo "A parameter is missing or incorrect"
else
curl -X POST -u $2 ${API} -d ${DATA}
git init
git add .
git commit -m "Created repo"
git remote add origin $REMOTE
git push -u origin master
fi
}
エラー:
username@COMPUTER-NAME /path/to/local/repo
$ initg gh username bash_test desc
sh: [: missing `]'
sh: [: missing `]'
Enter host password for user 'username':
私の質問:
まず、私のエラーはどこですか?第二に、このスクリプトの制御フローまたは構造を改善して、指定された目標を達成するにはどうすればよいでしょうか?