SH Bash  ·  25 вопросов  ·  ~70 мин  ·  ⏱ Таймер 10:00  ·  Средний  · 

Строгий режим Bash

Средний тест по теме «Строгий режим Bash». Вопросы требуют читать Bash-код, отслеживать расширения, потоки и коды завершения, находить дефекты и выбирать правку с учётом эксплуатации. В серии 25 вопросов, из них 15 содержат полноценные фрагменты кода. Базовая среда — GNU Bash 5.2; внешние GNU-утилиты оговариваются в тексте задания.

Отвечено: 0 из 25
⏱ --:--
0%
💡 Инструкция: Выберите один ответ из пяти. На 25 вопросов отведено 70 минут. В каждом вопросе верен только один вариант. После завершения вы увидите общий результат, оценки по 5 тематическим шкалам и подробные объяснения.
Вопрос 1 из 25
На ревью сценария по теме «Остановка при ошибке set -e» встретился этот код. Какое наблюдение выдерживает проверку по аргументам, потокам и коду завершения?
BashОстановка при ошибке set -e · вариант A
set -e
if false; then echo no; fi
echo alive
Вопрос 2 из 25
На ревью сценария по теме «Контроль неустановленных переменных set -u» встретился этот код. Что в этом коде произойдёт или останется верным при указанных условиях?
BashКонтроль неустановленных переменных set -u · вариант A
set -u
unset name
printf '<%s>\n' "${name-default}"
Вопрос 3 из 25
На ревью сценария по теме «Ошибки в конвейере pipefail» встретился этот код. Как следует оценить этот вариант с учётом синтаксиса Bash и вызванных программ?
BashОшибки в конвейере pipefail · вариант A
set -o pipefail
(exit 3) | (exit 5) | true
printf '%s\n' "$?"
Вопрос 4 из 25
На ревью сценария по теме «Неожиданные исключения» встретился этот код. Код рассматривают на техническом ревью. Какой вывод подтверждается его фактическим поведением?
BashНеожиданные исключения · вариант A
set -euo pipefail
count=0
((count++))
echo "$count"
Вопрос 5 из 25
На ревью сценария по теме «Проверка и диагностика» встретился этот код. Что точнее всего характеризует работу показанного кода?
BashПроверка и диагностика · вариант A
printf 'bash=%s flags=%s\n' "$BASH_VERSION" "$-" >&2
set -o | grep -E 'errexit|nounset|pipefail' >&2
Вопрос 6 из 25
Перед запуском фрагмента из раздела «Остановка при ошибке set -e» нужен точный прогноз. Что следует записать в заключении ревью этого фрагмента?
BashОстановка при ошибке set -e · вариант B
set -e
f() { false; echo continued; }
if f; then :; fi
Вопрос 7 из 25
Перед запуском фрагмента из раздела «Контроль неустановленных переменных set -u» нужен точный прогноз. Какой разбор не смешивает этот вариант с другими способами решения задачи?
BashКонтроль неустановленных переменных set -u · вариант B
set -u
for x in "$@"; do :; done
printf '%s\n' "${array[@]}"
Вопрос 8 из 25
Перед запуском фрагмента из раздела «Ошибки в конвейере pipefail» нужен точный прогноз. Какое описание согласуется с фактическими аргументами и состоянием процессов?
BashОшибки в конвейере pipefail · вариант B
set -euo pipefail
producer | head -n 1
echo done
Вопрос 9 из 25
Перед запуском фрагмента из раздела «Неожиданные исключения» нужен точный прогноз. Какой технический вывод относится к показанному коду, а не к похожему решению?
BashНеожиданные исключения · вариант B
matches=$(grep pattern file)
Вопрос 10 из 25
Перед запуском фрагмента из раздела «Проверка и диагностика» нужен точный прогноз. Какое утверждение верно именно для этого варианта?
BashПроверка и диагностика · вариант B
SHELLOPTS=errexit:pipefail bash script.sh
Вопрос 11 из 25
Этот участок из темы «Остановка при ошибке set -e» относится к практической части теста «Строгий режим Bash». Какой вывод соответствует именно этой записи, а не общему совету по теме?
BashОстановка при ошибке set -e · вариант C
f() { critical_step || return; next_step; }
Вопрос 12 из 25
Этот участок из темы «Контроль неустановленных переменных set -u» относится к практической части теста «Строгий режим Bash». Что можно уверенно сказать об этом решении после пошагового разбора?
BashКонтроль неустановленных переменных set -u · вариант C
declare -a array=()
for x in "${array[@]}"; do :; done
Вопрос 13 из 25
Этот участок из темы «Ошибки в конвейере pipefail» относится к практической части теста «Строгий режим Bash». Какое утверждение относится к приведённому фрагменту без лишних допущений?
BashОшибки в конвейере pipefail · вариант C
first=$(producer | { IFS= read -r line; printf '%s' "$line"; })
Вопрос 14 из 25
Этот участок из темы «Неожиданные исключения» относится к практической части теста «Строгий режим Bash». Какой вывод подтверждается правилами Bash и указанной последовательностью команд?
BashНеожиданные исключения · вариант C
if matches=$(grep pattern file); then
  :
elif (($? == 1)); then
  matches=
else
  exit $?
fi
Вопрос 15 из 25
Этот участок из темы «Проверка и диагностика» относится к практической части теста «Строгий режим Bash». Что этот вариант меняет в поведении сценария на самом деле?
BashПроверка и диагностика · вариант C
#!/usr/bin/env bash
set -Eeuo pipefail
Вопрос 16 из 25
В документации к сценарию уточняют контракт темы «Остановка при ошибке set -e». Какое ограничение особенно важно учесть перед переносом решения в эксплуатацию?
Вопрос 17 из 25
В документации к сценарию уточняют контракт темы «Контроль неустановленных переменных set -u». Какую оговорку стоит вынести в описание эксплуатационного контракта?
Вопрос 18 из 25
В документации к сценарию уточняют контракт темы «Ошибки в конвейере pipefail». Какое условие остаётся за пределами гарантии выбранного механизма?
Вопрос 19 из 25
В документации к сценарию уточняют контракт темы «Неожиданные исключения». Какое замечание точнее всего отделяет учебный пример от промышленного решения?
Вопрос 20 из 25
В документации к сценарию уточняют контракт темы «Проверка и диагностика». Какой риск останется даже после корректной реализации основной конструкции?
Вопрос 21 из 25
При переносе решения в автоматизацию проверяют аспект «Остановка при ошибке set -e». На какую гарантию Bash следует опираться при техническом ревью этого участка?
Вопрос 22 из 25
При переносе решения в автоматизацию проверяют аспект «Контроль неустановленных переменных set -u». На каком правиле должен строиться разбор подобных фрагментов?
Вопрос 23 из 25
При переносе решения в автоматизацию проверяют аспект «Ошибки в конвейере pipefail». Какой общий контракт помогает предсказать результат до выполнения?
Вопрос 24 из 25
При переносе решения в автоматизацию проверяют аспект «Неожиданные исключения». Какое правило лучше всего объясняет корректный способ решения?
Вопрос 25 из 25
При переносе решения в автоматизацию проверяют аспект «Проверка и диагностика». Какой принцип остаётся верным и на обычном, и на граничном входе?

Ответьте на все 25 вопросов, чтобы получить результат

🔗 Встроить тест на свой сайт (iframe) ▼

Скопируйте код и вставьте в любое место на вашем сайте:

Также доступна прямая ссылка на embed-страницу