在Bash / Zsh中,使用cat作为多行消息是好的,例如:
cat <<DELIM
This is line 1
This is line 2
DELIM
但是,上面的代码对Fish Shell不起作用。 有没有办法这样做?
答案 0 :(得分:4)
鱼没有“Here documents”。
最简单的方法是使用printf
,例如:
printf "%s\n" "This is line 1" "This is line 2"
或者你可以利用鱼类扫描多行匹配引号的事实:
echo "This is line 1
This is line 2"
(如果您希望在下一行中使用结尾引号以便于插入更多行,则可以使用echo -n
)
答案 1 :(得分:1)
这是我最终用于我的文本块的内容。阅读faho关于printf的提示。但是希望代码看起来像块本身。
printf "\t%s\n" \
"###################" \
"# #" \
"# Multiline block #" \
"# #" \
"###################"
%s:字符串是否用双引号封装。
\ n:新行。
\ t:水平标签。
将它们混合在一起会在每行之前插入一个制表符,缩进文本。并且它在每一行的末尾添加一个回车符。