有没有办法在Fish shell中回显/捕捉多行消息?

时间:2015-12-11 14:22:34

标签: shell fish

在Bash / Zsh中,使用cat作为多行消息是好的,例如:

cat <<DELIM
This is line 1
This is line 2
DELIM

但是,上面的代码对Fish Shell不起作用。 有没有办法这样做?

2 个答案:

答案 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:水平标签。

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