Чтобы ответить на вопрос в заголовке, как я понял :Вы хотите прочитать строки ввода, и для каждой, которая равна имени функции оболочки, запустить эту функцию.
Вы можете использовать declare -f func
, чтобы увидеть, определено ли func
, что-то вроде этого:
#!/bin/bash
foo() { echo foofoo; }
bar() { echo barbar; }
while read funcname; do
if declare -f "$funcname" &> /dev/null; then
"$funcname"
fi
done
Обратите внимание, что в вашем коде:
IFS='>' read -r website_url gallery_dir
оставляет место перед >
в website_url
, так как установленное здесь IFS
не содержит пробелов. Вместо этого вы можете использовать IFS='> ' read...
.
for i in $website_url; do
echo $i | awk -F '/.' '{print $2}' | xargs
done
Я не уверен, что это должно делать. for i in $website_url
разбивает и объединяет значение переменной, а i
выполняет цикл по значениям. xargs
в конце конвейера повторяет все, что он получает на входе. Ни один из них не выполняет никаких функций. Кроме того, разделитель полей awk
/.
соответствует косой черте, за которой следует любой символ, поэтому, если ввод был, например. foo/bar
, результирующий вывод будет ar
.
Я предполагаю, что вы используете Debian 10, но инструкции для более поздних версий аналогичны. Модуль, который вам нужен, поддерживается версией ядра, используемой в Debian 10, но он не включен; давайте это исправим.
Установите исходный код ядра для версии по умолчанию в вашем выпуске:
sudo apt install linux-source
Извлеките его:
cd /usr/src
tar xf linux-source-*.tar.xz
(при условии, что доступен только один linux-source
архив, что будет иметь место, если вы не установили несколько пакетов linux-source
).
Скопируйте текущую конфигурацию ядра:
cd linux-source-*/
cp /boot/config-$(uname -r).config
Включить настройку модуля sht3x
:
make menuconfig
(это может пожаловаться на отсутствие инструментов, таких как компилятор; sudo apt install build-essential
должен все исправить ).
Чтобы узнать, какую опцию нужно включить и где она находится, нажмите / и введите «SHT3X»:
Это дает некоторое количество информации:
SENSORS_SHT3X
; Нажмите Введите для выхода из результатов поиска, перейдите к «Драйверы устройств», нажмите Введите , затем перейдите к «Поддержка аппаратного мониторинга», нажмите Введите , найдите опцию «SHT3x» и нажмите M , чтобы включить ее как модуль.
Нажимайте вкладку до тех пор, пока не будет выделено «Сохранить», затем Введите , подтвердите имя файла для записи(.config
)и выберите «Выход» несколько раз, пока не будет вернуться к подсказке.
Наконец, соберите модуль:
make drivers/hwmon/sht3x.ko
Для этого могут потребоваться дополнительные зависимости, как минимум libelf-dev
иlibssl-dev
(sudo apt install libelf-dev libssl-dev
).
Если все пойдет хорошо, вы получите файл drivers/hwmon/sht3x.ko
, который можно загрузить как модуль.