您可以使用广泛使用的fmt实用程序。
如果您有 Gnu coreutils(如果您使用 Linux,您几乎肯定会这样做),那么您可以使用Gnu 版本。许多 BSD 系统上都有一个非常相似的实用程序,包括 Mac OS X。
这是一个简单的示例,它应该适用于这些实现中的任何一个。请注意,第二段缩进了两个空格,并且保留了缩进:
description="\
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean ornare leo non dolor porttitor
euismod. Cras
commodo, nisi vel gravida volutpat, enim turpis tempor eros, ut venenatis elit leo ut nunc. Nulla fermentum
ligula id tincidunt porttitor.
Morbi ut massa vitae tortor rutrum
gravida ut id nunc. Integer imperdiet pharetra augue, quis finibus justo
luctus id. Phasellus a diam ac risus consequat pharetra. Cras
lacinia neque
sed ipsum euismod, non commodo felis facilisis.
Suspendisse luctus purus justo, sed iaculis lectus consequat nec. Etiam pretium ultricies
ligula, a pretium sapien facilisis eu. Nulla rhoncus viverra turpis a rutrum.
Cras eu porttitor urna. Duis nec metus vel nisi accumsan scelerisque. Cras lectus erat, mattis non mauris in, consectetur vulputate ipsum.
"
fmt -w 60 <<<"$description"
Run Code Online (Sandbox Code Playgroud)
输出:
Lorem ipsum dolor sit amet, consectetur adipiscing
elit. Aenean ornare leo non dolor porttitor euismod. Cras
commodo, nisi vel gravida volutpat, enim turpis tempor
eros, ut venenatis elit leo ut nunc. Nulla fermentum ligula
id tincidunt porttitor.
Morbi ut massa vitae tortor rutrum gravida ut id
nunc. Integer imperdiet pharetra augue, quis finibus
justo luctus id. Phasellus a diam ac risus consequat
pharetra. Cras lacinia neque sed ipsum euismod, non
commodo felis facilisis.
Suspendisse luctus purus justo, sed iaculis lectus
consequat nec. Etiam pretium ultricies ligula, a pretium
sapien facilisis eu. Nulla rhoncus viverra turpis a rutrum.
Cras eu porttitor urna. Duis nec metus vel nisi accumsan
scelerisque. Cras lectus erat, mattis non mauris in,
consectetur vulputate ipsum.
Run Code Online (Sandbox Code Playgroud)
您可以轻松地将其添加到脚本中(感谢@ninjaj 提供有关使用 tput 获得所需列宽的建议。)
#!/bin/bash
description=... # as above, not repeated for space
# Check to see if the first argument is a cry for help
if [[ $1 == -help ]]; then
fmt -w $(tput cols) <<< "$description"
exit 0
fi
Run Code Online (Sandbox Code Playgroud)