он, похоже, в функциональном отношении ничем не отличается от простого безымянного канала.
Дело в том, что не каждое программное обеспечение может поддерживать чтение из стандартного ввода или запись в стандартный вывод.
Кроме того, если вам нужен ввод от нескольких процессов, то вы не можете отличить их друг от друга (не глядя на сами данные) с помощью канала:
{ echo foo; echo bar; } | cat
# vs.
cat <(echo foo) <(echo bar)
с cat
, очевидно, плохим примером. Но с awk
это может иметь значение ( FNR
против NR
).
2)
tee file_4 >(shasum -a 256 > file_4.sha256)
Нет перенаправления stdout для всего, что отправляется в FD 1
tee
?
Нет, почему оно должно быть? > (cmd)
не означает "перенаправление стандартного вывода"! Так что есть команда без перенаправления. В случае 3) вы добавляете перенаправление к команде, и вывод перенаправляется.
Вы можете использовать это для лучшего понимания ваших командных строк:
echo tee file_4 >(shasum -a 256 > file_4.sha256)
Возможно, кнопки не активированы с помощью thinkpad_acpi
. Вы можете включить все горячие клавиши с помощью
echo enable,0xffffffff >/proc/acpi/ibm/hotkey
Поскольку вы должны быть root, простого sudo
будет недостаточно, потому что он влияет только на echo
. Таким образом, вы должны либо стать root с помощью sudo -i
, либо инкапсулировать, например.
sudo bash -c echo enable,0xffffffff > /proc/acpi/ibm/hotkey
или
echo enable,0xffffffff | sudo tee /proc/acpi/ibm/hotkey
Поскольку вы работаете с битовой маской, вы можете отдельно включать и отключать горячие клавиши. Дополнительную информацию см. в документации модуля .
Чтобы пережить следующую перезагрузку, вы можете добавить команду в свой/etc/rc.local
Если вы используете Ubuntu 18.04 или более позднюю версию, файл может отсутствовать, так как systemd
обрабатывает это. Но если файл уже существует, он будет использоваться, как вы сами можете убедиться, заглянув в sudo systemctl edit --full rc-local
.
Файл должен быть исполняемым, и для него требуется shebang.
#!/bin/sh
echo enable,0xffffffff > /proc/acpi/ibm/hotkey
echo 0
Если вы создали файл, сделайте его исполняемым,
chmod +x /etc/rc.local
У меня есть небольшое улучшение. В исходном посте спрашивалось о кнопках громкости, я заметил, что это также влияет на кнопки яркости, которые уже отлично работают на моем T60 под управлением Ubuntu 20.04 LTS.
С этим связано много ошибок, одна из них :https://bugs.launchpad.net/ubuntu/+source/linux/+bug/357673?comments=allгде я нашел маску, которая включает только клавиши громкости.
Итак, чтобы все это заработало, я создал файл /etc/rc.local со следующим содержимым:
ubuntu@ubuntu-ThinkPad-T60:~$ cat /etc/rc.local
#!/bin/sh
echo enable,0xfc7fff > /proc/acpi/ibm/hotkey
echo 0
Как уже упоминалось, сделайте его исполняемым с помощью:
sudo chmod +x /etc/rc.local
Перезагружаемся, и на T60 клавиши громкости работают, а яркость продолжает работать как положено. Спасибо @karlsebal за предоставление всех подробностей. Не стесняйтесь проверить ошибку, чтобы увидеть, может ли ваша проблема и решение помочь другим, спасибо.