Configuration Information [Automatically generated, do not change]: Machine: x86_64 OS: linux-gnu Compiler: gcc Compilation CFLAGS: -g -O2 -Wno-parentheses -Wno-format-security uname output: Linux bomb20 4.8.0-46-generic #49-Ubuntu SMP Fri Mar 31 13:57:14 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux Machine Type: x86_64-unknown-linux-gnu
Bash Version: 4.4 Patch Level: 12 Release Status: maint Description: The "mapfile" command works correctly if stdin is redirected from a file, but not if it's from a pipe. Demonstrated with several versions including the latest bash-snap-20170626 Repeat-By: This script demonstrates the problem: __CUT_HERE__ #!/bin/bash printf 'one\ntwo\nthree\n' > /tmp/input.txt mapfile REDIRECT < /tmp/input.txt cat /tmp/input.txt | mapfile PIPE echo "\$REDIRECT has ${#REDIRECT[@]} elements" echo "\$PIPE has ${#PIPE[@]} elements" if [ ${#REDIRECT[@]} -eq 3 ] && [ ${#PIPE[@]} -eq 3 ] ; then echo PASS exit 0 else echo FAIL exit 1 fi __AND_HERE__