git 挂钩中的新行

New line in git hook

我有一个 git 挂钩,它调用 php 文件。 php 文件将产生一个输出(在 运行 一些单元测试之后)。挂钩文件是一个 sh 文件。 php 文件的输出回显到终端,但 \n 被剥离,所有内容都在一行中。我有什么想法才能有新的线路吗?

谢谢

你可以试试,在你的 sh 脚本中,

  • 将 php 脚本的输出分配给变量 avar;
  • 回显该变量:

    echo -e "${avar}"
    

应该保留换行符,如“echo multiple lines into a file”中所述。

同样的 link 也提到了 printf

printf '%s\n' "${avar}"

解决方案是使用printf '%s\n' "$output"

关键元素是将输出解释为字符串的 %s 和将整个字符串解释为单个输入的双引号 ""。如果您不添加双引号,那么每个 space 都会被 \n 替换,因此您最终会得到每行一个单词。显然,要显示的实际字符串存储在 $output.

参考: http://wiki.bash-hackers.org/commands/builtin/printf