отслеживание синтаксической ошибки sh

У меня есть коллега, который подключается к удаленному веб-хосту через инструмент командной строки / php, который использует CMS Drupal, который называется drush.

Drush подключается к удаленному хосту через ssh, но когда мы вводим команды, мы получаем сообщение об ошибке, когда bash пытается проанализировать определенный файл. Однако он не сообщает, в каком файле есть синтаксическая ошибка.

Begin redispatch via drush_invoke_process(). [2.01 sec, 6.87 MB]        [notice]
Backend invoke: ssh -p 2222 -o "AddressFamily inet"                    [command]
user@myremotehost.com
'drush  --debug --verbose --uri=myremotehost.com
--db-url='\''mysql://host:myremotehost.com:11297/database'\''
 cache-rebuild 2>&1' 2>&1 [2.01 sec, 6.88 MB]
Calling proc_open(ssh -p 2222 -o "AddressFamily inet" user@myremotehost.com 'drush  --debug --verbose --uri=mysite.com --db-url='\''mysql://host:myremotehost.com:11297/database'\''  cache-rebuild 2>&1' 2>&1);
/bin/sh: -c: line 0: unexpected EOF while looking for matching `''
/bin/sh: -c: line 1: syntax error: unexpected end of file
End redispatch via drush_invoke_process(). [5.36 sec, 6.88 MB]          [notice]

Оболочка запускается нормально, и мы можем запускать типичные служебные команды GNU, поэтому не похоже, что .bashrc или другие точечные файлы содержат ошибку.

В качестве меры по устранению неполадок мы переустановили команду drush (комбинацию сценариев оболочки и php). С его помощью мы можем запускать различные команды, кроме этой, которая подключается к удаленному хосту.

Как мы можем начать отслеживать, где возникает ошибка?

Мы используем git-bash GNU bash, версия 4.4.12 (1) -release (x86_64-pc-msys) в Windows 7.

Правка

В выводе, который я вставил выше, я использовал некоторые подробные параметры и параметры отладки, которые я использовал для получения дополнительной информации.

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

$ drush @mysite status
/bin/sh: -c: line 0: unexpected EOF while looking for matching `''
/bin/sh: -c: line 1: syntax error: unexpected end of file
0
16.08.2017, 16:33
2 ответа

Оказывается, из-за переменной PATH в наших окнах мы связывались с drush, отличным от предыдущей установки. Этот драш отправлял несовпадающую цитату на удаленный хост, который отправлял обратно ошибки sh.

Мы обновили путь (после тестирования, указав полный путь к drush ), и теперь он работает.

0
28.01.2020, 04:41

Судя по логу, команда, отправленная по ssh, не работает. Чтобы решить вашу проблему, сначала найдите, где находится вызов ssh в drush.

В ssh передана команда

    drush  --debug --verbose --uri=myremotehost.com --db-url='\''mysql://host:myremotehost.com:11297/database'\'
  1. он распадается наdrush ... --db-url='\''mysql://.../database'\'
  2. последнее \'то же, что и 'открывает цитату, поэтому не закрывается

Справочник по Bash — лучшее место, где можно получить точное представление о

0
28.01.2020, 04:41

Теги

Похожие вопросы