如何在80个字符的规则内打印长文本?



假设您有一个输出长文本的POSIX/UNIX shell脚本:

$ sh ./shell_script.sh --help

Lorem ipsum dolor sit amet, consectetepsing elite。但非饮食性的枯枯病(risus finibus nulla ullamcooper bland)。埃涅亚人的暂时性乳酸血症。

Morbi饮食不自由,静坐不静坐,静坐不静坐。古埃及古埃及tellus a risus mollis convallis in sed sapien.

以下是我通常编写此脚本的方式。我遵循80个字符的规则,即使是深缩进:
while ...
case $1 in
--help)
printf "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Ut "
printf "imperdiet risus finibus nulla ullamcorper blandit. Aenean "
printf "tempor lacinia aliquet.nn"
printf "Morbi imperdiet libero ligula, sit amet placerat ipsum "
printf "facilisis nec. Aenean sed tellus a risus mollis convallis in "
printf "sed sapien.n"
...
done

手动将该文本的所有行拆分为80个字符是非常乏味的。

而且,我可以稍后更新该文本。例如,我可以用A new kind of dachshund Lorem代替Lorem。在这种情况下,我需要再次更新脚本。

是否有任何有效的方法来管理(shell)脚本(或一般代码)中的长文本?或者,在这种情况下,我应该忽略80字规则吗?

那么,基本上,您有一个shell脚本,它应该输出一个大于80个字符的文本字符串,但是出于美观或更容易编辑的原因,您不希望将输入行扩展到超过80个字符。对吧?

基本思想是将字符串写入几行,但告诉bash忽略行尾,并将其视为单个长行。例子:

echo This output 
is really 
a single line

产生这个输出实际上是一行

必须确保结束行紧跟在反斜杠后面。反斜杠后面不能有任何空格。我强烈建议在这个任务中使用一个可以显示空白的文本编辑器,因为这是一种非常讨厌且难以调试的错误。

最新更新