如何用强硬换行来回显字符串?

时间:2016-12-02 23:23:53

标签: bash

我正在写一个非常简单的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的内容,但可以选择将输出自动换行到指定的宽度。

1 个答案:

答案 0 :(得分:5)

  

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

     

只需使用烟斗:

printf '%s\n' "$questionText" | fold

使用-s选项会使fold仅包装空白字符,而不是在单词的中间:

printf '%s\n' "$questionText" | fold -s