Передать имя файла в кавычках с пробелами в переменной bash

Вы можете запустить modinfo modulename, где имя_модуля — это имя модуля вывода lsmod(без суффикса.ko ). Но если модуль был загружен, то файл.ko должен быть где-то в вашей файловой системе, например /lib/modules/$(uname -r)/....

0
04.05.2021, 05:19
1 ответ

Примечание. :Linux поддерживает такой синтаксис поиска, но он не является универсальным. Например, он не работает с большинством производных BSD, что приводит к следующему:

bash-3.2$ find -name 'foo bar'
find: illegal option -- n
usage: find [-H | -L | -P] [-EXdsx] [-f path] path... [expression]
       find [-H | -L | -P] [-EXdsx] -f path [path...] [expression]

Ваша проблема не в местоположении, а в цитировании и интерпретации цитирования. Не могли бы вы заменить свой код на

x='foo bar'
find -name "$x"

В качестве альтернативы вы можете попробовать использовать eval:

x="-name 'foo bar'"
eval "find $x"

Что, по крайней мере, в моей системе привело к:

bash-5.1$ x="-name 'foo bar'"
bash-5.1$ eval "find $x"
./foo bar

Что я считаю желаемым результатом.

0
28.07.2021, 11:35

Теги

Похожие вопросы