use*_*370 3 bash brace-expansion
我有以下括号扩展(bash shell):
echo -e {0..4..2}" "{0..2..2}"\n"
Run Code Online (Sandbox Code Playgroud)
我预计这会产生
0 0
0 2
2 0
2 2
4 0
4 2
Run Code Online (Sandbox Code Playgroud)
但是除了第一行之外,输出的每一行都有一个前导空格,最后还有一个我没想到的额外的空行。为什么是这样。有没有简单的方法来修复它?显然我可以做一些笨拙的事情,比如 pipe to sed 's/^ //',但是有没有更漂亮的方法而不用管道到额外的命令?
Kam*_*ski 18
echo打印由空格分隔的参数,即使它们包含(或生成)换行符。此外,它会在输出的末尾添加一个换行符(除非它是echo -n)。
使用printf:
printf '%s\n' {0..4..2}" "{0..2..2}
Run Code Online (Sandbox Code Playgroud)
当echo做什么意外,总是考虑printf。在你熟悉之后printf它甚至可能成为你的第一选择。
| 归档时间: |
|
| 查看次数: |
480 次 |
| 最近记录: |