Должен ли я использовать графическое ядро ​​или драйвер xserver -xorg -видео -Intel?

Действительно, предположение о значении параметра/переменной неустановленного в OP является неточным.

man bashопределяет переменную как особый тип параметра. Поэтому информация о переменных иногда находится в разделах, относящихся только к параметрам в целом.

Общие термины, характеризующие переменные

Термины, описывающие характеристики и состояния относительно переменных из статьи Википедии о переменных .

  1. объявленное состояние:память зарезервирована, имя существует
  2. инициализированное состояние:в дополнение к 1. значение присваивается (непосредственно после объявления)
  3. неинициализированное состояние:значение не определено, начальное значение не установлено (просто объявление имело место)
  4. ноль значение :зарезервированное/специальное значение, возвращаемое некоторыми языками программирования для указания неинициализированной переменной

Пункты руководства bash, относящиеся к переменным

  1. состояние установки:«Параметр установлен, если ему было присвоено значение». [Раздел ПАРАМЕТРЫ]
  2. неустановленное состояние , двусмысленное, похоже, применимо к переменным, которые больше не существуют/не существуют, и к переменным в «неинициализированном состоянии» в соответствии с общими условиями :«... bash проверяет параметр, который не установлен... " [Сегмент расширения параметра]
  3. нулевая/нулевая строка-пустое значение :"Параметр устанавливается, если ему было присвоено значение. Нулевая строка является допустимым значением." [Раздел ПАРАМЕТРЫ]
  4. сброс встроенной-команды "гашения" переменных, например.unset string:«Для каждого имени удалить соответствующую переменную…» [раздел «ВСТРОЕННЫЕ КОМАНДЫ ОБОЛОЧКИ», параграф «unset»]
  5. объявить встроенный-например.declare -p string:«Опция -p будет отображать атрибуты и значения каждого имени». [Раздел ВСТРОЕННЫЕ КОМАНДЫ ОБОЛОЧКИ,«объявить»/«набрать» абзац]

Re -с формулировкой исходного вопроса и ответом на него

Вопрос должен был быть более точно сформулирован как :" Как можно отличить неинициализированную переменную bash от не -существующей? "

Ответ на это:

  1. Не удивляйтесь тому, чтоunsetвстроенная функция удаляет переменную из существования, а переменная в неустановленном состоянии в терминах bash является переменной, которая либо не была объявлена, либо была объявлена ​​без стоимость.

  2. Встроенная команда declareдействительно ведет себя непоследовательно в bash 4.3 по сравнению с bash 4.4 в отношении переменных, объявленных без значения:

    $ # bash 4.3
    $ unset string; declare string; declare -p string; echo $?
    bash: declare: string: not found
    1
    $ # bash 4.4
    $ unset string; declare string; declare -p string; echo $?
    declare -- string
    0
    

    Таким образом, этот способ проверки одного используемого имени переменной не является универсальным, но работает в последних версиях bash.

  3. К сожалению, раскрытие параметров не поможет провести различие между -несуществующими и неинициализированными переменными, так как обе ситуации охватываются одним и тем же неустановленным состоянием:

    $ declare string; echo ${string-UNSET} # `string` exists, empty
    UNSET
    $ unset string; echo ${string-UNSET} # `string` does not exist
    UNSET
    
  4. К сожалению, также условный оператор -vне помогает [руководство раздел CONDITIONAL EXPRESSIONS], он проверяет, было ли «переменной оболочки VARNAME установлено (присвоено значение )», без указания того, является ли VARNAME существовало в первую очередь:

    $ unset string; ! [ -v string ] && echo "unused"
    unused
    $ declare string; ! [ -v string ] && echo "unused"
    unused
    

Похожие темы

Обсуждения, посвященные путанице в терминологии и особенностям bash в отношении состояний и значений параметров/переменных:

  1. Как проверить, существует ли переменная...

  2. Как проверить, определена ли вообще переменная в Bash...

  3. Нулевая строка и «» — это одна и та же строка?

0
13.02.2021, 07:46
1 ответ

Происходит небольшая путаница:

  • модуль i915— это модуль/драйвер ядра для вашего iGPU, альтернатив ему нет
  • xorg-x11-drv-intel— это то, что требуется X.orgдля связи с вашим драйвером ядра, по сути, это «драйвер» для сервера X.org.

my display is dull

Я не совсем понимаю, что вы хотите этим сказать.

2
18.03.2021, 22:30

Теги

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