Предполагая, что вы используете исходные пакеты ядра и не перенастроили pacman вручную, вам не нужно это делать.
Вы можете легко это проверить, посмотрев отметку времени в /boot/initramfs -linux.img. Если он новее, чем /boot/vmlinuz -linux.img, значит, initramfs был не нужно вручную обновлять его.
Вы можете использовать побитовые операторы, присутствующие в арифметическом выражении:
result=$((a|b|c))
(и аналогично &
для AND и ^
для XOR ).
Логические операторы работают и в арифметических выражениях:
result=$((a||b||c))
(и аналогично &&
).
Присваивание может быть частью самого выражения (В этом случае допускаются пробелы вокруг =
):
(( result = a || b || c ))
Если вместо этого вы используете true
и false
, скобки вообще не нужны:
a=false
b=false
c=true
a || b || c
result=$?
Проблема в том, что в данном случае 0 означает истину.
В квадратных скобках только неустановленное или пустое значение само по себе является ложным. Итак, вы можете использовать
a=
b=
c=1
[[ $a || $b || $c ]]
result=$?
Опять же, ноль соответствует истине, но это можно исправить, изменив его на
! [[ $a || $b || $c ]]