Почему PHP печатает знак процента, когда мой script выполняется?

Когда я запускаю простой echo 'Hello World'; script в PHP из моего терминала на моем Mac, я вижу знак процента (%) в конце строки.

Почему это? Могу ли я отключить это?

~ php -r "echo 'Hello World';"
Hello World%                                          
~ 

Снимок экрана

Технически, я не делаю этого в bash, я запускаю Oh My Zsh, если это имеет значение.

Ответ 1

Это от zsh.

Ваш вывод не заканчивается разрывом строки. Bash запускает PS1 сразу после выхода, zsh печатает (цветной)% и вставляет сам разрыв строки. Вы можете предотвратить это, добавив разрыв строки

php -r 'echo "Hello World\n";'

Примечание. Я переключил "и", в php '\n' будет печатать его так, как будто "\n" означает разрыв строки.

Ответ 2

Добавьте эту строку в .zshrc:

PROMPT_EOL_MARK=''

Это работает для меня.

Для подробного объяснения вы можете перейти здесь: https://superuser.com/a/645612