Не нужно ничего сложного, вы можете установить пакет прошивки напрямую с помощью apt.
Команды для установки микропрограммы:
sudo apt-get update
sudo apt-get install firmware-iwlwifi
Команды для перезагрузки драйвера:
sudo modprobe -r iwlwifi
sudo modprobe iwlwifi
Это задокументированное поведение.
В справочной странице bash(1) говорится, что для set-e
,
оболочка не завершает работу, если команда не удалась является частью списка команд сразу после ключевого слова
while
илиuntil
, часть теста, следующая за зарезервированными словамиif
илиelif
, часть любой команды, выполняемой в списке&&
или||
, за исключением команды, следующей за последним&&
или||
, любая команда в конвейере, кроме последней, или если возвращаемое значение команды инвертируется с помощью!
.
[Выделение добавлено.]
И Спецификация POSIX командного языка оболочки подтверждает, что это правильное поведение:
Установка
-e
должна игнорироваться при выполнении составного списка после зарезервированного словаwhile
,до
,if
илиelif
, конвейер, начинающийся с!
зарезервированное слово, или любая команда списка И-ИЛИ, кроме последней.
и Раздел 2.9.3 Списки этого документа определяют
Список И-ИЛИ представляет собой последовательность одного или нескольких конвейеров. разделенные операторами "
&&
" и "||
".
Я предполагаю, что условие «если-то» в целом оценивается как истинное.
Я попробовал
set -e
if cd not_existing_dir
then echo 123
fi
echo "I'm running! =P"
, кто дает
-bash: cd: not_existing_dir: No such file or directory
I'm running! =P
код ошибки, перехватываемый условием if, таким образом bash не вызовет окончание выполнения.
Параметр set -e
не действует в некоторых ситуациях, и это стандартное поведение и переносимое в оболочку POSIX.
Неудачная команда является частью конвейера:
false | true; echo printed
будет печатать printed
.
И только провал самого трубопровода рассматривается:
true | false; echo 'not printed'
ничего не напечатает.
Команда failed запускается в составном списке после зарезервированного слова while
, till
, if
, elif
конвейера, начинающегося с !
зарезервированное слово, или любую команду как часть &&
или || Список
, кроме последнего:
false || true; echo printed
Последняя команда по-прежнему не выполняет ошибку set -e
:
true && false; echo 'not printed'
Подоболочка завершается ошибкой в составной команде:
(false; echo 'not printed') | cat -; echo printed