На самом деле в вашем первом примере псевдонима, который вы сделали после расширения:
cd test ---> cd $1 && ls test
Это основная разница между вызовом скрипта bash и раскрытием псевдонима! При использовании псевдонима ваш параметр записывается после всех символов определения псевдонима. $1
используется буквально и не заменяется словом test
с конца. Вы можете просто проверить это, изменив порядок команд в определении псевдонима
alias cd="ls $1 && cd"
дает правильное изменение каталога, но не список каталогов.
Одним из методов может быть создание указателя структуры (на зарегистрированный тип устройства -Я думаю, это будет структура клиента i2c _*)внутри драйвера устройства i2c и загрузка его указателем устройства, когда драйвер загружается (в функцию зонда ).
Затем указатель структуры должен быть ЭКСПОРТИРОВАН, и вы можете получить доступ к этому указателю в загружаемом модуле ядра. Используйте специальные методы и функции для записи в этот файл (, вы должны найти его в i2c.h)
Но этот метод не очень хорош, так как любое неправильное обращение с этим указателем может привести к сбою ядра.