我正在编写一个非常简单的 bash 脚本,它提出的问题包括先前答案中的文本。例如:

questionText="Hi $userName, I'm going to ask you some questions. At the end of the process, I'll output a file that might be helpful to you."
echo "$questionText"

其中一些问题很长。 echo 的输出软包装在我的 macOS 终端窗口中,但按字符而不是按单词。如何按字将输出硬包装到特定的字符宽度?

我无法手动将中断添加到 $questionText,因为包含的变量可以是任意长度。

我的搜索全部引导我到 fmtfold ,但那些想要文本文件作为输入,而不是变量。

我正在寻找的是类似 echo 的东西,但可以选择将输出换行到指定的宽度。

最佳答案

printf '%s\n' "$questionText" | fold
使用 -s 选项将使 fold 只在空白字符上换行,而不是在单词的中间:
printf '%s\n' "$questionText" | fold -s

关于bash - 如何用硬换行回显字符串?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/40942370/

10-13 09:16