如何在 echo 的输出之间留下空行?

如何在 echo 的输出之间留下空行?

我想运行 bash 脚本并在每个回显之间留出空格。目前我这样做:

#!/bin/bash
echo
echo 'foo'
echo
echo 'bar'

输出

foo

bar

但这看起来不太专业。我已经尝试过这样,但是第一行的空格是双倍的

echo -e '\n'
echo -e 'foo\n'
echo -e 'bar\n'

为了修复第一行,我输入:

echo -e ''

还有别的办法吗?

答案1

如果您想要格式化输出,您可能会更幸运printf

$ printf "\n%s\n\n%s\n" "foo" "bar"

foo

bar
$

我倾向于将其视为 Cprintf函数,但正如 @freddy 在下面的评论中建议的那样,您可以将其简化为:

$ printf "\n%s\n" "foo" "bar"

foo

bar

来自man zshbuiltins(但我认为这在实现中很常见):

If arguments remain unused after formatting, the format string
is reused until all arguments have been consumed.

答案2

echo -e "\nfoo"
echo -e "\nbar"

答案3

#function out() {
#    echo
#    echo $*
#}

# or

function out() {
    echo -e '\n'"$*"
}

out foo
out bar

还请考虑将此答案与有关的其他答案结合起来printf

相关内容