2017-01-01 3 views
3

Вот моя функция bash.Пути с -a не имеют смысла для функции bash

push() { 
> cd /var/www/html/wp 
> git init 
> git add * 
> git commit -am $1 
> git push -f origin master 
> } 

Я хочу выполнить его.

[email protected]:$push 'to delete file test'  
Reinitialized existing Git repository in /var/www/html/wp/.git/   
fatal: Paths with -a does not make sense.  

Как исправить мой баш-функцию?

Следующие команды могут быть успешно выполнены после гт/вар/WWW/HTML/WP/тест

cd /var/www/html/wp 
git init 
git add * 
git commit -am 'to delete file test' 
git push -f origin master 

Я просто хочу, чтобы написать функцию Баш толчок, чтобы добавить параметр, чтобы запустить его, такие как

push 'to delete file test' 

Для того, чтобы нажимной функцию

push(){ 
cd /var/www/html/wp 
git init 
git add * 
git commit -am $1 
git push -f origin master 
} 
+0

Нет, это не проблема git. –

+0

** git commit -am 'для удаления файла test' ** проверяется, он может успешно выполняться. –

+1

@MartinSerrano: технически это проблема Bash (или, скорее, проблема с оболочкой), так как проблема возникает из-за отсутствия кавычек вокруг расширения параметра. –

ответ

5

Похоже, $1 расширяется на несколько аргументов, а Git берет первый, чтобы быть сообщением фиксации, а остальное - файлами. Охранник "$1" в кавычки.

Но я должен добавить, что есть несколько проблем с этим скриптом. Это очень опасно. Вы выполняете несколько команд, не проверяя один раз для успеха или если вход подходит. Выполнение этого и принудительное нажатие Git может дать вам большую головную боль позже.

+0

Моя цель проста: git нажимать мой каталог Wordpress каждый день. –

Смежные вопросы