Попытка создать функцию Bash

#bash #function

#bash #функция

Вопрос:

Что в этом плохого? Кажется, я ничего не могу назначить переменной $SITE. «rm»s тоже не работают. Я неправильно связываю команду и переменную?

 newsite () {
    local SITE = $1;
    if [ -z "$1" ]; then # Is parameter #1 zero length?
            echo 'Please give the site a name'
            read = SITENAME;
            $SITE = $SITENAME
    fi

    git clone git://mydomain/site_template.git $SITE
    echo "New site has been created called: "$SITE"."
    rm -rf $SITE"/.git";
    rm $SITE"/README.txt";
    return 0
}
 

Ответ №1:

позаботьтесь о пробелах:

 local SITE=$1
 

также:

 read SITENAME
 

и

 SITE=$SITENAME
 

Комментарии:

1. Спасибо yi_H. Моя проблема заключалась в том, что «$SITE = $SITENAME;» неверно. Мне нужно было удалить «$» из «$SITES»

2. @Pardoner, у вас также не может быть пробелов вокруг = — это фундаментально для синтаксиса sh.

Ответ №2:

 function newsite {    
   SITE=$1;
   if [ -z "$1" ]
   then
            echo 'Please give the site a name';
            read = SITENAME;
            $SITE = $SITENAME;
    fi

    git clone git://mydomain/site_template.git $SITE
    echo "New site has been created called: "$SITE"."
    rm -rf $SITE"/.git";
    rm $SITE"/README.txt";
    return 0
}
 

Комментарии:

1. Кроме того, как мне проверить, был ли успешно клонирован репозиторий, прежде чем я что-либо удалю?