在 Bash/Zsh 中,可以将 cat 用于多行消息,例如:
cat <<DELIM
This is line 1
This is line 2
DELIM
Run Code Online (Sandbox Code Playgroud)
但是,上述代码不适用于 Fish Shell。有没有办法这样做?
这就是我最终用于我的文本块的内容。阅读 faho 中有关 printf 的提示。但希望代码看起来像块本身。
printf "\t%s\n" \
"###################" \
"# #" \
"# Multiline block #" \
"# #" \
"###################"
Run Code Online (Sandbox Code Playgroud)
%s:是用双引号括起来的字符串。
\n:新行。
\t:水平制表符。
将其混合在一起会在每行之前插入一个制表符,从而缩进文本。它在每行末尾添加一个回车符。
Fish 没有“ Here 文档”。
最简单的方法可能是使用printf
,例如:
printf "%s\n" "This is line 1" "This is line 2"
Run Code Online (Sandbox Code Playgroud)
或者您可以利用 fish 扫描多行匹配引号的事实:
echo "This is line 1
This is line 2"
Run Code Online (Sandbox Code Playgroud)
如果您希望在下一行使用结束引号以方便插入更多行,您可以使用echo -n
:
echo -n "This is line 1
This is line 2
"
Run Code Online (Sandbox Code Playgroud)