Это потому, что readarray не удаляет разделитель (новая строка по умолчанию), если он вызывается с параметром -t
.
Используя более простой метод declare -p var
для печати значений массива, посмотрите на это:
$ readarray array < <(echo -e "Jenny\nJane\nJessica")
$ declare -p array
declare -a array=([0]=$'Jenny\n' [1]=$'Jane\n' [2]=$'Jessica\n')
Вы можете увидеть завершающие символы новой строки для каждого элемента.
Хотя это:
$ readarray -t array < <(echo -e "Jenny\nJane\nJessica")
$ declare -p array
declare -a array=([0]="Jenny" [1]="Jane" [2]="Jessica")
не имеет завершающих символов новой строки.
Использование раскрытия переменных без кавычек - плохая идея, только не делайте этого.
Вам нужно убедиться, что новая библиотека действительно заменяет библиотеку вашей системы. В системе Debian amd64
это будет что-то вроде /usr/lib/x86_64-linux-gnu/libinput.so.10 .6.2
; вы должны скопировать свою новую библиотеку туда:
./configure && make && sudo cp -P src/.libs/libinput.so* /usr/lib/x86_64-linux-gnu/
Более эффективным подходом будет использование модификации пакета libinput
вашего дистрибутива; например, в Debian:
apt-get source libinput
cd libinput-1.1.3
Измените evdev-mt-touchpad-gestures. c
соответствующим образом, затем
dch -n "Reduce two-finger scroll timeout."
dch -r ignored
dpkg-buildpackage -us -uc
sudo dpkg -i ../libinput10*deb
(У вас должны быть установлены devscripts
и dpkg-dev
.)
Вы можете сделать что-то подобное в дистрибутивах на базе RPM.