Поскольку вы ставите метки с помощью tcsh
:
set project = $cwd:h:h:t:q
установит $project
в хвост головы головы головы текущей директории (или basename dirname dirname). :q
quotes результирующий текст, так что никакие дальнейшие расширения (например, разбиение на части или globbing) с ним не выполняются.
pwd
- это команда для вывода текущего рабочего каталога. Эта команда не встроена в tcsh
. Текущий рабочий каталог находится (что неудивительно или, по крайней мере, менее удивительно, чем в ksh
с $PWD
) в переменной $cwd
в tcsh
.
Создайте соответствующее ему правило udev.
Не обязательно запускать скрипт "после загрузки модуля" - он работает с конкретным устройством, поэтому лучше запускать его "после обнаружения устройства". Не имеет значения как устройство было обнаружено; пока ядро сообщает об этом как о «новом» устройстве, оно будет работать.
Тем не менее, модули присутствуют в /sys точно так же, как и устройства, что означает, что они также могут запускать правила udev и даже создавать для них единицы systemd.device.
Например, чтобы запустить службу сразу после загрузки pwm -sun4i, используйте это правило udev:
ACTION=="add", SUBSYSTEM=="module", KERNEL=="pwl-sun4i", \
TAG+="systemd", ENV{SYSTEMD_WANTS}+="fixup-pwl.service"
Для запуска простой однократной команды:
ACTION=="add", SUBSYSTEM=="module", KERNEL=="pwl-sun4i", RUN+="/etc/fix-pwl.sh"