On Fri, Nov 24, 2017 at 11:22:56AM +0800, 尹剑虹 wrote: > It's not the point. the problem is bash-4.4 auto add quote around $var or > $(cmd) after '<<<' > > On bash-4.2 and before following command always works fine > read ignore fstype <<<$(df --output=fstype $mountpoint) > > But after Update bash-4.4, our customer's script get fail, do you understand > what I mean?
The script is broken. It happened to work in bash 4.2 because of a bug in bash 4.2 that cancelled out the bug in the script. wooledg:~$ df --output=fstype / Type ext4 Here is how the script should be written: { read; read -r fstype; } < <(df --output=fstype "$mountpoint") And testing it: wooledg:~$ mountpoint=/ wooledg:~$ { read; read -r fstype; } < <(df --output=fstype "$mountpoint") wooledg:~$ declare -p fstype declare -- fstype="ext4"