Как включить конфигурацию в ядре?

Основная проблема с вашим сценарием заключается в том, что вы проверяете литеральную строку orderна предмет того, является ли она yesили нет. Вероятно, вы имели в виду "$order".

Другая проблема заключается в том, что вы запускаете этот скрипт, который является скриптом bash, используя /bin/sh. /bin/shможет не понимать некоторых расширений, которые bashвносит в стандарт оболочки POSIX, но вам может просто повезти. Измените первую строку, чтобы вместо нее использовалось bash.

Сравнение строк в сценарии оболочки можно выполнить с помощью

if [ "$order" = "yes" ]; then...; fi

Это «дешевле» и легче читать, чем вызов grep.

Вы также можете использоватьcase... esac:

case "$order" in
    yes)... ;;
    no) ... ;;
esac

Относительно -выполнения сценария для повторного запуска является хрупким и очень нетрадиционным. Например, скорее всего, он не будет работать, если скрипт вызывается как bash script.sh. Лучше ввести цикл, из которого вы выйдете, если пользователь не хочет делать еще одну попытку.

bashтакже имеет петлю select, которую вы можете использовать следующим образом:

echo 'Please select protein from this menu:'
select protein in "beans" "lentils" "tofu" "cheese"; do
    if [ -z "$protein" ]; then
        echo 'Invalid choice' >&2
    else
        printf 'You picked %s as protein\n' "$protein"
        break
    fi
done

Это позволяет лучше контролировать ввод данных пользователем.


Общий подход к чтению интерактивного ввода от пользователя с последующим вопросом о выходе или отказе:

while true; do
    read -p 'Enter data: ' -r data
    # use "$data" here for something

    read -p 'Again? [Y/n] ' answer

    case "$answer" in
        [Nn]*) break ;;
    esac
done

Здесь у вас есть внешний цикл, который задает вопросы и выполняет некоторую обработку. Затем он спрашивает пользователя, хотят ли они пойти еще раз. Если они ответят «Нет» (что-либо, начинающееся с Nили n), мы breakвыбываем из цикла.

Тест в конце также может быть проверкой $data. Если пользователь ввел неверный ввод в первый read, вы можете захотеть повторить запрос, пока не будет дан правильный ввод.

Преимущество этого в том, что$data(или то, что вы читаете ), живо и доступно после цикла ввода,поэтому вместо обработки $dataвнутри цикла вы можете сделать это позже.

Псевдокод:

input-loop:
    read-data
    validate-data
    if-valid exit input-loop
    goto input-loop

main-code:
    use-validated-data
1
18.04.2020, 12:32
1 ответ

Убедитесь, что у вас установлены инструменты сборки:

pacman -S base-devel(нажмите Enter, чтобы установить все)

  1. Загрузите исходный код ядра изhttps://www.kernel.org/

  2. Распаковать tar в /usr/src/или/usr/local/src(т.е.tar xvJf linux-5.6.5.tar.xz)

  3. перейдите в новый каталог/usr/src/linux-5.6.5

  4. введитеmake menuconfig(найдите здесь свои настройки KASAN и измените их )сохраните .configфайл и выйдите (или, если вы его не нашли :отредактируйте .configфайл в своем любимом редакторе и установите Настройка KASAN осуществляется поиском по ключевому слову и изменением значения ).

Вот руководство по сборке ядра способом манджаро.
https://forum.manjaro.org/t/how-to-compile-the-mainline-kernel-the-manjaro-way/51700

Делайте резервные копии!
Удачи.

0
19.03.2021, 02:28

Теги

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