Давайте сначала проясним некоторые недоразумения:
Что сейчас делает ваш скрипт? Он перебирает каждый элемент в каталоге, где скрипт выполняется (, а не там, где он размещен ). Затем он ищет каждый элемент, независимо от того, является ли он файлом или нет. Если это файл, то он открывает файл file.sh
и выполняет замену, используя sed
.
Что он должен делать:
Вместо открытия file.sh
после каждого истинного утверждения if
он должен открывать фактический элемент.
Что вы можете изменить, чтобы добиться этого:
Заменить file.sh
в команде sed
на$item
Эти инструкции предполагают, что вы собрали собственное ядро; вы бы запускали эти команды из исходного дерева ядра. Они здесь неуместны; что вам нужно сделать, это установить заголовки ядра:
sudo apt install linux-headers-$(uname -r)
Чтобы обеспечить их установку с будущими обновлениями ядра, установите также метапакет -:
sudo apt install linux-headers-generic
(при условии, что вы используете универсальное ядро ).