grep не дает вывода для каталога, переданного в переменной

Вы можете включать и отключать касание с помощью следующей команды:

xsetwacom --set 'Touch device name' Touch on

Чтобы сопоставить его с кнопками, см. этот ответ . По сути, вы сопоставляете кнопку планшета с клавишей клавиатуры, а затем сопоставляете ее с командой. Вы можете сделать первое с помощью xsetwacom, а второе в настройках ярлыков Gnome.

Чтобы переключить состояние, вы можете использовать --getи проверить, включено оно или нет. Следующее использует хакерский grepдля неправильного использования оператора as if:

(xsetwacom get 'Wacom Intuos Pro M (WL) Finger touch' Touch | grep -q off) && (xsetwacom set 'Wacom Intuos Pro M (WL) Finger touch' Touch on) || (xsetwacom set 'Wacom Intuos Pro M (WL) Finger touch' Touch off)

1
26.11.2019, 09:09
1 ответ

Причина, по которой grep прерывается при рекурсии по всей системе, скорее всего, не в том, что он не может справиться с объемом данных, а в том, что он спотыкается об один или другой псевдофайл или файл устройства в /proc, /sys или / разв. Вы можете исключить проблемные каталоги с помощью параметра --excludeв командной строке.

Причина, по которой он не расширяет подстановочные знаки, заключается в том, что они заключены в кавычки в этой строке:

    grepdir="${line}/{*,.*}"

Изменение на это, вероятно, поможет их расширению.

    grepdir="${line}/"{*,.*}

Другим способом добиться этого (с меньшим количеством сценариев от вашего имени )будет выбор файлов с помощью findи передача путей к файлам в xargsдля обработки:find /... -print 0 | xargs -0...

Тем не менее, в любом случае, вероятно, все равно будет спотыкаться о любой файл (s ), о который споткнулся исходный рекурсивный grep, если вы не исключите их.

2
27.01.2020, 23:15

Теги

Похожие вопросы