gpt4 book ai didi

git - Bash shell 脚本错误 sh : [: missing `]'

转载 作者:太空狗 更新时间:2023-10-29 13:16:46 27 4
gpt4 key购买 nike

目标:

我正在尝试创建一个有用的快捷方式来在本地初始化一个 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':

我的问题:

首先,我的错误在哪里?其次,我如何改进此脚本的控制流或结构以实现既定目标?

最佳答案

我有那种错误,因为我之前没有使用空格] 例如:

if [ "$#" -ne 2]; then

代替

if [ "$#" -ne 2 ]; then

PS:我知道这是一个老问题,但它可能对某些人有帮助:)

关于git - Bash shell 脚本错误 sh : [: missing `]' ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15849095/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com