如何在 blockquote 中的行尾添加换行符以进行打印?
How do I add newline character at end of lines in blockquote for printing?
我正在使用 MacOS 和 Bash 4.4.23.
我希望能够在单个字符串中使用长块引用来进行帮助对话,并且
在程序中打印出来。
假设我在 var help
中有一个字符串
help='Searches a user to
see if he exists.'
help2='Searches a user to\n
see if he exists.'
echo $help # all one line
echo $help2 # all one line (with literal \n)
printf $help # prints 'Searches'
printf $help2 # same ^
我也试过了
help3=$'Searches a user\n
to see if he exists.'
但我仍然没有得到预期的结果。
我要打印的内容:
Searches a user to
see if he exists.
通过查找字符串拆分选项,我发现我可以做到这一点
help='Searches a user
to see if he exists.'
IFS=$'\n'
printf '%s\n' $help
unset IFS
您也可以执行 for line in $help; do echo $line done
而不是使用 printf
命令。
来源:https://unix.stackexchange.com/questions/184863/what-is-the-meaning-of-ifs-n-in-bash-scripting
src2: How can I have a newline in a string in sh?
$help
设置正确;需要修复的是扩展时。根据经验,您应该几乎总是在展开变量时引用变量。在这里这样做将保留嵌入的换行符。
help='Searches a user to
see if he exists.'
echo "$help"
我正在使用 MacOS 和 Bash 4.4.23.
我希望能够在单个字符串中使用长块引用来进行帮助对话,并且 在程序中打印出来。
假设我在 var help
help='Searches a user to
see if he exists.'
help2='Searches a user to\n
see if he exists.'
echo $help # all one line
echo $help2 # all one line (with literal \n)
printf $help # prints 'Searches'
printf $help2 # same ^
我也试过了
help3=$'Searches a user\n
to see if he exists.'
但我仍然没有得到预期的结果。
我要打印的内容:
Searches a user to
see if he exists.
通过查找字符串拆分选项,我发现我可以做到这一点
help='Searches a user
to see if he exists.'
IFS=$'\n'
printf '%s\n' $help
unset IFS
您也可以执行 for line in $help; do echo $line done
而不是使用 printf
命令。
来源:https://unix.stackexchange.com/questions/184863/what-is-the-meaning-of-ifs-n-in-bash-scripting
src2: How can I have a newline in a string in sh?
$help
设置正确;需要修复的是扩展时。根据经验,您应该几乎总是在展开变量时引用变量。在这里这样做将保留嵌入的换行符。
help='Searches a user to
see if he exists.'
echo "$help"