Linux 脚本以突出显示的';%结尾';我如何调试这个?

Linux 脚本以突出显示的';%结尾';我如何调试这个?,linux,Linux,我的脚本相当长,工作正常,但是,无论脚本在哪里结束(通过正常方式或陷阱),打印到控制台的最后一个字符始终是高亮显示的% 如果有一个非常长且复杂的脚本,应该如何调试它?我唯一改变的是将echo替换为printf,因为我读到我应该继续这样做。使用zsh时,如果命令有输出,并且没有换行,zsh将打印突出显示的%,并移到下一行: 要解决此问题,请确保输出以换行结束 与bash不那么优雅的处理方式相比: 使用zsh时,如果命令有输出,并且没有换行,zsh将打印突出显示的%,并移到下一行: 要解决此问题

我的脚本相当长,工作正常,但是,无论脚本在哪里结束(通过正常方式或陷阱),打印到控制台的最后一个字符始终是高亮显示的
%


如果有一个非常长且复杂的脚本,应该如何调试它?我唯一改变的是将
echo
替换为
printf
,因为我读到我应该继续这样做。

使用zsh时,如果命令有输出,并且没有换行,zsh将打印突出显示的
%
,并移到下一行:

要解决此问题,请确保输出以换行结束

与bash不那么优雅的处理方式相比:


使用zsh时,如果命令有输出,并且没有换行,zsh将打印突出显示的
%
,并移到下一行:

要解决此问题,请确保输出以换行结束

与bash不那么优雅的处理方式相比:


使用
set-x
在某一行中开始调试,并使用
set+x
关闭调试。您是否偶然使用了zsh?当正在运行的程序的输出未以换行结束时,zsh将打印一个突出显示的
%
。使用
set-x
在某一行中开始调试,并使用
set+x
将其关闭。您是偶然使用zsh吗?当正在运行的程序的输出不以换行符结尾时,zsh打印一个突出显示的
%
。可能不太“优雅”,但也不太“令人惊讶”。脚本编写者知道,
echo-n
表示“打印时不使用换行符”,并且不希望“打印时使用高亮显示的
%
,然后是换行符,即使我没有请求换行符”。当然,一个写得好的脚本会避免这种情况,因为它会确保输出的最后一行总是包含一个换行符,但仍然…也许不那么“优雅”,但也不那么“令人惊讶”。脚本编写者知道,
echo-n
表示“打印时不使用换行符”,并且不希望“打印时使用高亮显示的
%
,然后是换行符,即使我没有请求换行符”。当然,一个写得好的脚本可以通过确保它输出的最后一行总是包含一个换行符来避免这种情况,但仍然。。。