我会说最安全的选择是打印结果而不换行,因为当命令通过管道传输到另一个不希望其输入以行分隔的命令时,您可能会遇到麻烦,例如以下脚本:
function test_nl {
echo result
}
function test_no_nl {
printf %s result
}
test_nl | xxd -p | wc -c
#prints 15
test_no_nl | xxd -p | wc -c
#prints 13
Run Code Online (Sandbox Code Playgroud)
有没有 test_nl 方法更好的情况?
要看。如果您一直在查看确切的输出是什么,就像xxd上面一样,那么换行符可能只是一个麻烦。但是对于一般用途,请考虑像uname, uptime,date和Well 之类的实用程序,基本上任何此类都会打印尾随换行符,因此这绝对是惯例。如果在命令行上运行的程序不打印尾随换行符,许多 shell 将在同一行打印提示,这看起来很难看(如下)。此外,例如命令替换删除尾随换行符只是为了弥补这一点。
bash$ date -u | tr -d '\n'
Sat 14 Nov 2020 03:48:19 PM UTCbash$
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
314 次 |
| 最近记录: |