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