SH Bash  ·  20 вопросов  ·  ~55 мин  ·  ⏱ Таймер 55:00  ·  Лёгкий  · 

Конвейеры

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

Отвечено: 0 из 20
⏱ --:--
0%
💡 Инструкция: Выберите один ответ из пяти. На 20 вопросов отведено 55 минут. В каждом вопросе верен только один вариант. После завершения вы увидите общий результат, оценки по 4 тематическим шкалам и подробные объяснения.
Вопрос 1 из 20
Перед запуском фрагмента из раздела «Канал между процессами» нужен точный прогноз. Какой вывод об этом варианте можно сделать без догадок о внешнем контексте?
BashКанал между процессами · вариант A
{ printf 'ok\n'; printf 'bad\n' >&2; } | grep ok
Вопрос 2 из 20
Перед запуском фрагмента из раздела «Статусы команд конвейера» нужен точный прогноз. Какой разбор соответствует именно показанной последовательности команд?
BashСтатусы команд конвейера · вариант A
false | true | false
status=("${PIPESTATUS[@]}")
printf '%s\n' "${status[*]}"
Вопрос 3 из 20
Перед запуском фрагмента из раздела «Разветвление потока через tee» нужен точный прогноз. Какое описание не приписывает фрагменту лишних гарантий?
BashРазветвление потока через tee · вариант A
printf 'a\nb\n' | tee /tmp/tee.$$ | wc -l
printf 'file=%s\n' "$(wc -l < /tmp/tee.$$)"
rm -f /tmp/tee.$$
Вопрос 4 из 20
Перед запуском фрагмента из раздела «Ошибки в цепочке» нужен точный прогноз. Не предполагая намерение автора, что можно утверждать об этой конструкции?
BashОшибки в цепочке · вариант A
set +o pipefail
false | true
printf 'plain=%s\n' "$?"
set -o pipefail
false | true
printf 'strict=%s\n' "$?"
Вопрос 5 из 20
Этот участок из темы «Канал между процессами» относится к практической части теста «Конвейеры». Какой вывод наиболее точно привязан к показанной реализации?
BashКанал между процессами · вариант B
producer | head -n 1
Вопрос 6 из 20
Этот участок из темы «Статусы команд конвейера» относится к практической части теста «Конвейеры». Какое утверждение о поведении кода остаётся точным на граничном входе?
BashСтатусы команд конвейера · вариант B
false | true
echo "${PIPESTATUS[*]}"
printf 'again:%s\n' "${PIPESTATUS[*]}"
Вопрос 7 из 20
Этот участок из темы «Разветвление потока через tee» относится к практической части теста «Конвейеры». Что важно заметить в этом фрагменте до его включения в автоматизацию?
BashРазветвление потока через tee · вариант B
generate | tee artifact.bin | checksum
Вопрос 8 из 20
Этот участок из темы «Ошибки в цепочке» относится к практической части теста «Конвейеры». Что действительно гарантирует или, наоборот, не гарантирует эта конструкция?
BashОшибки в цепочке · вариант B
set -euo pipefail
grep pattern file | head -n 1
Вопрос 9 из 20
Разберите код без пробного запуска; его тема — «Канал между процессами». Какое суждение правильно описывает показанную реализацию?
BashКанал между процессами · вариант C
producer 2>&1 | consumer
Вопрос 10 из 20
Разберите код без пробного запуска; его тема — «Статусы команд конвейера». Какой ответ учитывает и полезный эффект, и остающееся ограничение кода?
BashСтатусы команд конвейера · вариант C
pipeline
statuses=("${PIPESTATUS[@]}")
for s in "${statuses[@]}"; do ((s==0)) || exit "$s"; done
Вопрос 11 из 20
Разберите код без пробного запуска; его тема — «Разветвление потока через tee». Код предлагают как альтернативу. Какова его точная техническая оценка?
BashРазветвление потока через tee · вариант C
set -o pipefail
generate | tee "$artifact" | checksum
Вопрос 12 из 20
Разберите код без пробного запуска; его тема — «Ошибки в цепочке». Что является главным свойством этого варианта?
BashОшибки в цепочке · вариант C
if grep -m1 pattern file >result; then
  use result
fi
Вопрос 13 из 20
При переносе решения в автоматизацию проверяют аспект «Канал между процессами». На какой границе эта техника перестаёт быть достаточной сама по себе?
Вопрос 14 из 20
При переносе решения в автоматизацию проверяют аспект «Статусы команд конвейера». Где заканчивается защита, которую даёт рассматриваемая конструкция?
Вопрос 15 из 20
При переносе решения в автоматизацию проверяют аспект «Разветвление потока через tee». Что способно нарушить ожидаемый результат, хотя основной фрагмент написан корректно?
Вопрос 16 из 20
При переносе решения в автоматизацию проверяют аспект «Ошибки в цепочке». Какой эксплуатационный компромисс здесь нельзя скрывать за успешным кодом возврата?
Вопрос 17 из 20
Разработчики спорят о границах механизма «Канал между процессами». Какое утверждение точнее всего описывает контракт рассматриваемого механизма?
Вопрос 18 из 20
Разработчики спорят о границах механизма «Статусы команд конвейера». Какое правило позволяет правильно разобрать эту тему до запуска кода?
Вопрос 19 из 20
Разработчики спорят о границах механизма «Разветвление потока через tee». Какое свойство механизма нельзя подменять удачным примером запуска?
Вопрос 20 из 20
Разработчики спорят о границах механизма «Ошибки в цепочке». Какая формулировка связывает частные примеры одним проверяемым правилом?

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

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

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

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