从man bash上readarray:
-t
在分配给数组元素之前,从读取的行中删除任何尾随换行符.
bash中readarray的-t默认行为是什么?
我用-t测试了几次,没有使用换行文件,没有注意到差异.
确实存在差异:
# Newlines are retained as part each array element
$ readarray foo <<EOF
> foo
> bar
> baz
> EOF
$ printf '%s' "${foo[@]}"
foo
bar
baz
# Newlines are stripped
$ readarray -t foo <<EOF
foo
bar
baz
EOF
$ printf '%s' "${foo[@]}"
foobarbaz
Run Code Online (Sandbox Code Playgroud)
格式printf不包含换行符,因此第一个示例仅在单独的行上打印每个元素,因为每个元素本身都以换行符结尾.在第二个示例中,所有三个元素都打印在同一行上.
| 归档时间: |
|
| 查看次数: |
3329 次 |
| 最近记录: |