如何在 bash 命令中退出以添加额外的行?

如何在 bash 命令中退出以添加额外的行?

当我运行 bash 程序时,它会要求输入。现在我必须将一个带有换行符的段落作为函数的输入。

在终端中,每当我点击Enter,它就会进入程序的下一部分。我应该使用哪个字符来转义行 - 如果我输入,\n它会将字符串\n作为输入。

答案1

您可以使用sed转换\n为实际的换行符,如下所示:

#!/bin/bash

# Prints "Please enter a message",  and reads input
read -rep $'Please enter a message:\n' message

# Transforms any occurences of "\n" and replace them with newline
message=$(printf "${message}" | sed 's/\\n/\n/g')

# Prints the transformed string
echo "$message"

结果:

Please enter a message:
Paragraph\nMessage
Paragraph
Message

灵感来自这个现有的答案在 Unix 和 Linux 上。

相关内容