Новая строка в git-хуке

У меня есть крючок git, который вызывает файл php. Файл php выдаст вывод (после запуска некоторых модульных тестов). Файл ловушки - это файл sh. Вывод из файла php отображается на терминале, но \n удаляется, и все находится в одной строке. Любые идеи, что я должен сделать, чтобы иметь новые линии?

Спасибо


person heXer    schedule 23.07.2015    source источник
comment
если вы используете операторы печати или эха в PHP, вам нужно поместить \n в сам оператор. Помните, что \n не будет интерпретироваться как новая строка, если вы поместите его в одинарные кавычки. Вы должны использовать двойные кавычки, чтобы разрешить интерполяцию, например, print("Hello, World!\n");   -  person Wolf    schedule 23.07.2015
comment
Уже сделал это. echo Test\n и echo Test \r\n просто для уверенности. Все еще не работает.   -  person heXer    schedule 23.07.2015


Ответы (2)


Вы можете попробовать и в своем скрипте sh

  • присвоить вывод php-скрипта переменной avar;
  • повторите эту переменную с помощью:

    echo -e "${avar}"
    

Это должно сохранить новые строки, как указано в «выводить несколько строк в файл».

В той же ссылке также упоминается printf.

printf '%s\n' "${avar}"
person VonC    schedule 23.07.2015
comment
Спасибо, но echo -e у меня не поддерживается. Ничего не печатается. Вместо этого я использовал printf. - person heXer; 24.07.2015
comment
@heXer Конечно. В ссылке, которую я упомянул, также есть printf. Я отредактировал свой ответ соответственно. - person VonC; 24.07.2015

Решение состоит в том, чтобы использовать printf '%s\n' "$output"

Ключевыми элементами являются %s, которые интерпретируют вывод как строку, и двойные кавычки "", которые интерпретируют всю строку как один ввод. Если вы не добавите двойные кавычки, то каждый пробел будет заменен на \n, так что вы получите одно слово в строке. Очевидно, что фактическая отображаемая строка хранится в $output.

Ссылка: http://wiki.bash-hackers.org/commands/builtin/printf

person heXer    schedule 24.07.2015
comment
Я только что увидел твой ответ. +1. Хорошее описание ключевого элемента. - person VonC; 24.07.2015