我想运行 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
。