git post получает приемы, запускает ошибку сценария оболочки удаленного сервера, ожидая ключевое слово - PullRequest
0 голосов
/ 14 марта 2019

в следующем сообщении получить крюк я получаю ошибку после отправки в хранилище, remote: hooks/post-receive:: syntax error, unexpected $undefined, expecting keyword_do or '{' or '('

Сценарий получения поста следующий,

#!bin/bash while read oldrev newrev ref \ do ssh user1@ip -pPassword\ 'path/to/the/shell.sh' end

в этом случае мой удаленный сервер paswd включает \, я попытался следующим образом

#!bin/bash while read oldrev newrev ref do ssh user1@ip -pPassword\ 'path/to/the/shell.sh' end

#!bin/bash while read oldrev newrev ref \ do (ssh user1@ip -pPassword\ 'path/to/the/shell.sh'); end

Ответы [ 2 ]

0 голосов
/ 14 марта 2019

Я не уверен, верна ли часть ssh

На самом деле, ssh может работать, но быть частью проблемы:

  • проверьте, что ssh -T user1@ip -pPassword работает при выполнении с сервера, где хук пост-получения равен
  • проверка работоспособности без вывода сообщений , что означает, что пользователь1 .bashrc или .profile не отображает набор строк, которые могут затем помешать выполнению ловушки.
0 голосов
/ 14 марта 2019

Для цикла while в bash вы можете:

#!/bin/bash
while read oldrev newrev ref;do
    echo $read $oldrev $newrev $ref
done

или

#!/bin/bash
while read oldrev newrev ref
do
    echo $read $oldrev $newrev $ref
done

или

#!/bin/bash
while read oldrev newrev rev;do echo $read $oldrev $newrev $ref;done

Я не уверен, правильная ли часть ssh, но я не думаю, что \ необходим.

...