当我运行 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 上。