Вложенная подстановка команд не работает в csh
. Объявите шаблон как переменную, а затем постройте массив, используя переменную.
set pattern = `date +%F_%H`
set status = ( `cut -d, -f1 <*$pattern.csv | grep -v Status` )
Вы можете запустить этот скрипт, после подключения или отключения usb устройства, код будет выполнен:
while true; do state=$(lsusb) && sleep 2 && [[ $state != $(lsusb) ]] && echo "Change detected, replace echo with your command"; done
Загрузка файлов конфигурации при запуске зависит от того, какая среда рабочего стола используется. Если вы запустили свой xserver, набрав startx , это обычно будет означать, что он будет использовать .xinitrc (хранится в $ HOME).
Внутри .xinitrc вам нужно будет загрузить конфигурацию с различными сопоставлениями, например .xsessionrc
Затем вам понадобится следующая строка (в .xinitrc)
xrdb -merge ~/.xsessionrc
Однако, если вы используете менеджер входа в систему, например как LightDM или GNOME вам нужно будет найти такой же эквивалент
Для чего стоит:
Вы можете использовать файл ~ / .xsession
вместо ] ~ / .xsessionrc
.
~ / .xsessionrc
специфичен для Debian, а ~ / .xsession
подобен UNIX и имеет одинаковое поведение во всех дистрибутивах.
Вот мое окончательное решение. Я исправил крайне маловероятное и неуместное условие гонки в ответе Нира. Также я обращаю внимание на то, что я не могу переназначить клавиши, когда мышь отключена (нет сообщений об ошибках, когда она отключена).
Я добавил в ~ / .xinitrc
:
# Map mouse button 8 (top right) to button 2 (top left) and vice versa, run when changes to the mouse occur
while true; do
NEW_MOUSEID=$(xinput | grep "Expert Mouse" | grep -o -E '[0-9]+' | head -n 1)
if [ "$MOUSEID" != "$NEW_MOUSEID" ]; then
MOUSEID=$NEW_MOUSEID
if [ "$MOUSEID" != "" ]; then
xinput --set-button-map $MOUSEID 1 8 3 4 5 6 7 2 9 10 11 12
fi
fi
sleep 2
done &
Я использовал идентификатор мыши, полученный из xinput, в качестве триггера вместо lsusb
, но он имеет тот же эффект.
Обратите внимание, что конвейеры после команды xinput просто анализируют идентификатор мыши, который может изменить. Дополнительные НОВЫЕ / СТАРЫЕ ИДЕНТИФИКАТОРЫ мыши были анальным способом избежать любой возможности состояния гонки.
Спасибо @Nir за предложение.