有没有办法在鱼壳中回显/捕获多行消息?

Ada*_*dam 5 shell fish

在 Bash/Zsh 中,可以将 cat 用于多行消息,例如:

cat <<DELIM
This is line 1
This is line 2
DELIM
Run Code Online (Sandbox Code Playgroud)

但是,上述代码不适用于 Fish Shell。有没有办法这样做?

Min*_*oth 8

这就是我最终用于我的文本块的内容。阅读 faho 中有关 printf 的提示。但希望代码看起来像块本身。

printf "\t%s\n"              \
       "###################" \
       "#                 #" \
       "# Multiline block #" \
       "#                 #" \
       "###################"
Run Code Online (Sandbox Code Playgroud)

%s:是用双引号括起来的字符串。

\n:新行。

\t:水平制表符。

将其混合在一起会在每行之前插入一个制表符,从而缩进文本。它在每行末尾添加一个回车符。


fah*_*aho 6

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)