通过管道传输wp命令时格式混乱

时间:2021-04-15 作者:Neural_oD

好的,所以我一直在使用wp plugin update --all 过去使用tee命令。过去没有问题,但在我运行系统更新后,每次通过管道运行命令时,格式都会出错。这就是所用命令的要点:wp plugin update --all|awk \'/Success/,EOF\'| tee >(convert -font Courier -pointsize 14 label:@- img.png)之前,它将产生完美的输出:enter image description here

然而,现在当我使用管道时,即使我省略了convert命令,也要这样说:`wp plugin update--all | tee test。txt“输出出错…”。。。。enter image description here

enter image description here

有人有什么想法吗。。。。让我有点疯狂。。。

2 个回复
最合适的回答,由SO网友:Tom J Nowell 整理而成

WP-CLI需要了解它所运行的终端的一些信息来格式化表,也就是TTY。

但当你吹管的时候,就没有TTY了!

但如果使用此bash函数,您可以欺骗它,使其认为存在:

faketty() {                       
    0</dev/null script --quiet --flush --return --command "$(printf "%q " "$@")" /dev/null
}
然后,您可以运行WP CLI命令,它会认为它是在交互式shell中运行的,而不是在管道中运行的,例如:

faketty wp post list | more

SO网友:birgire

您可以使用SHELL_PIPE 根据WP-CLI,ENV变量保留ascii格式docs:

要启用ASCII格式,即使在外壳是管道时,也可以使用ENVvariable shell\\u PIPE=0。

对于单个WP-CLI命令,这可能就足够了,例如:

( SHELL_PIPE=0; wp plugin list > list.txt )

( SHELL_PIPE=0; wp plugin list | less )
管道时保留ascii表格格式。这answer 对于subshell很有帮助。

相关推荐

WP-CLI:检测更改的核心文件并自动恢复它们

我知道有一个命令可以验证核心文件的完整性:$ wp core verify-checksums 如果文件已损坏或更改,是否有任何WP-CLI命令可自动恢复所有这些文件?E、 g.从官方存储库下载这些文件并进行恢复。这可能是一个有用的命令,可以每24小时运行一次,例如,与任何更新一起运行,以保持Wordpress安装的完整性和安全性。