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
.
中
我有一个 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
.