mirror of
https://github.com/Dannecron/netology-devops.git
synced 2025-12-25 15:22:37 +03:00
homework 3.3: add questions 7-9
This commit is contained in:
@@ -82,12 +82,41 @@ PS. На виртуальной машине не было установлен
|
|||||||
7. Чем отличается последовательность команд через `;` и через `&&` в bash?
|
7. Чем отличается последовательность команд через `;` и через `&&` в bash?
|
||||||
Есть ли смысл использовать в bash `&&`, если применить `set -e`?
|
Есть ли смысл использовать в bash `&&`, если применить `set -e`?
|
||||||
|
|
||||||
// todo add answer
|
При использовании `&&` будет учитываться код выхода предыдущей выполненой команды. Если он не 0, то выполнение последовательности будет прервано.
|
||||||
|
В случае же `;` последовательность будет выполнена в любом случае.
|
||||||
|
|
||||||
|
В случае `set -e` параметр имеет следующее определение
|
||||||
|
|
||||||
|
>When this option is on, if a simple command fails for any of the reasons listed in Consequences of Shell Errors or returns an exit status value >0,
|
||||||
|
> and is not part of the compound list following a while, until, or if keyword,
|
||||||
|
> and is not a part of an AND or OR list,
|
||||||
|
> and is not a pipeline preceded by the ! reserved word, then the shell shall immediately exit.
|
||||||
|
|
||||||
|
То есть, если данная команда будет выполнена в связке с другими командами, то она не сможет прервать выполнение последовательности.
|
||||||
|
Таким образом, для данной команды использование `&&` и `;` будет иметь одинаковое поведение.
|
||||||
|
|
||||||
8. Из каких опций состоит режим bash `set -euxo pipefail` и почему его хорошо было бы использовать в сценариях?
|
8. Из каких опций состоит режим bash `set -euxo pipefail` и почему его хорошо было бы использовать в сценариях?
|
||||||
|
|
||||||
// todo add answer
|
Параметр `-e` уже был рассмотрен в предыдущем вопросе.
|
||||||
|
|
||||||
|
`-u` - пишет ошибку в stderr, когда скрипт пытается обратиться к несуществующей переменной, но при этом не останавливает его работу.
|
||||||
|
Если запущен интерактивный режим, то его работа никогда не прерывается.
|
||||||
|
|
||||||
|
`-x` - пишет в stderr трейс (последовательность выполнения системных вызовов) для каждой команды перед её выполнением.
|
||||||
|
|
||||||
|
`-o` - устанавливает настройку работы последовательности команд. В данном случае значение `pipefail` говорит о том,
|
||||||
|
что статус работы всей последовательности будет значение последней команды с ненулевым кодом выхода или 0, если все команды выполнились успешно.
|
||||||
|
|
||||||
9. Используя `-o stat` для `ps`, определите, какой наиболее часто встречающийся статус у процессов в системе.
|
9. Используя `-o stat` для `ps`, определите, какой наиболее часто встречающийся статус у процессов в системе.
|
||||||
|
|
||||||
// todo add answer
|
Выполним данную команду на виртуальной машине
|
||||||
|
```shell
|
||||||
|
ps -o stat
|
||||||
|
|
||||||
|
STAT
|
||||||
|
Ss
|
||||||
|
R+
|
||||||
|
```
|
||||||
|
|
||||||
|
Таким образом, самым встречающимся статусом является `Ss`. Первая буква - это непосредственно статус (`S - interruptible sleep (waiting for an event to complete)`),
|
||||||
|
вторая - дополнительная информация (`s - is a session leader`).
|
||||||
|
|||||||
Reference in New Issue
Block a user