пример консольного вывода, который не записывается на стандартный вывод

Я только что купил Wacom Bamboo Pad, и это не сработало. Hower, следуя этим инструкциям (https://bugs.launchpad.net/xf86-input-wacom/+bug/1265714/comments/38), работал для меня:

Получил это отлично, теперь кто-то может помогите установить его для всех по умолчанию. Итак, шаги:

Добавьте usbhid.quirks=0x056a:0x0319:0x40000000 в cmd-строку grub boot (/etc/default/grub). Теперь планшет уже работает с драйвером wacom, но автоматически назначенный драйвер wacom не поддерживает тачпад и это часть клавиатуры. Я добавил к 50-wacom.conf (/usr/share/X11/xorg.conf.d/) строку
MatchIsTablet "on"

в первом После этого Matchproduct «Wacom | WACOM | Hanwang | PTK-540WL | ISD-V4» Таким образом, «evdev» работает для клавиатуры и пэдов частей устройства и «wacom» только для планшетов

Все работает, в том числе три пальца (которые отправляются драйвером клавиатуры как Alt-Left, Alt-Right, Super и т. д.) и чувствительность к давлению пера! Должен быть лучший способ сопоставить Bamboo Pad, не нарушая общий файл wacom, но у меня нет опыта в этом, но я попробую позже, если никто другой не сделает это быстрее. Для проводной версии замените 0x0319 на 0x0318 в grub cmdline Hooray:)

1
задан 7 January 2017 в 08:02

1 ответ

Что сказал wjandrea, это правильно, что вы можете захватить прочитанный stderr. К сожалению, попытка чтения с помощью stderr не сохраняет переменную key, поэтому вывод для echo $key будет пустым. Однако в скрипте он будет сохранять переменную, потому что сама строка чтения не перенаправляется с stderr на stdout 2>&1 в сценарии. Вместо этого скрипт получает, чтобы сохранить переменную, потому что теперь она установлена ​​до перенаправления. Я думаю, чтобы было проще, используйте вместо этого строки echo. Я добавил все примеры.

Пример вашего скрипта:

:~$ cat test1.sh 
#!/bin/bash
read -p "type a key and Enter: " key
echo "the key was $key"

:~$ ./test1.sh | tee junk
type a key and Enter: G
the key was G

:~$ cat junk
the key was G

С перенаправлением 2>&1:

:~$ ./test1.sh 2>&1 | tee junk
type a key and Enter: G
the key was G

:~$ cat junk
type a key and Enter: the key was G

С линией echo:

:~$ cat test.sh 
#!/bin/bash
echo -n "Type a key and press Enter: "
read key
echo "the key was $key"

echo строка с командой tee:

:~$ ./test.sh | tee junk
Type a key and press Enter: X
the key was X

:~$ cat junk
Type a key and press Enter: the key was X

Пример сценария no:

С stderr:

:~$ read -p "Type a key and press Enter: " key 2>&1 |tee junk; echo "The key was $key" | tee -a junk
Type a key and press Enter: F
The key was 

:~$ cat junk
Type a key and press Enter: The key was 

Вместо echo и нескольких команд tee:

:~$ echo -n "Type a key and press Enter: " | tee junk; read key; echo "The key was $key" | tee -a junk
Type a key and press Enter: F
The key was F

:~$ cat junk
Type a key and press Enter: The key was F

Надеюсь, что это поможет!

2
ответ дан 23 May 2018 в 02:40

Другие вопросы по тегам:

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