Tôi mắc kẹt với một hành vi kỳ lạ của readarray
mệnh lệnh.
Các man bash
tiểu bang:
readarray
Read lines from the standard input into the indexed array variable array
nhưng các tập lệnh này không hoạt động (mảng trống):
unset arr; (echo a; echo b; echo c) | readarray arr; echo ${#arr[@]}
unset arr; cat /etc/passwd | readarray arr; echo ${#arr[@]}
Và những công việc này:
unset arr; readarray arr < /etc/passwd ; echo ${#arr[@]}
unset arr; mkfifo /tmp/fifo; (echo a; echo b; echo c) > /tmp/fifo & mapfile arr < /tmp/fifo ; echo ${#arr[@]}
Có gì sai với đường ống?
< <
2 mũi tên nghĩa là gì?