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

Функции и коды завершения

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

Отвечено: 0 из 20
⏱ --:--
0%
💡 Инструкция: Выберите один ответ из пяти. На 20 вопросов отведено 55 минут. В каждом вопросе верен только один вариант. После завершения вы увидите общий результат, оценки по 4 тематическим шкалам и подробные объяснения.
Вопрос 1 из 20
Разберите код без пробного запуска; его тема — «Объявление функций». Какой разбор соответствует именно показанной последовательности команд?
BashОбъявление функций · вариант A
x=outer
f() { local x=inner; printf '%s\n' "$x"; }
f
printf '%s\n' "$x"
Вопрос 2 из 20
Разберите код без пробного запуска; его тема — «Позиционные параметры». Какое описание не приписывает фрагменту лишних гарантий?
BashПозиционные параметры · вариант A
set -- script one
f() { printf '%s:%s:%s\n' "$#" "$1" "$2"; }
f alpha 'beta gamma'
printf '%s\n' "$1"
Вопрос 3 из 20
Разберите код без пробного запуска; его тема — «Возврат из функции». Не предполагая намерение автора, что можно утверждать об этой конструкции?
BashВозврат из функции · вариант A
f() { printf 'value'; return 7; }
out=$(f)
status=$?
printf '%s:%s\n' "$out" "$status"
Вопрос 4 из 20
Разберите код без пробного запуска; его тема — «Код завершения». Какое утверждение точно относится к показанному фрагменту?
BashКод завершения · вариант A
check() { false; printf 'failed\n' >&2; }
check
printf 'status=%s\n' "$?"
Вопрос 5 из 20
Для блока «Объявление функций» сравнивают несколько внешне похожих решений. Какое утверждение о поведении кода остаётся точным на граничном входе?
BashОбъявление функций · вариант B
tmp=keep
cleanup() { tmp=gone; }
cleanup
printf '%s\n' "$tmp"
Вопрос 6 из 20
Для блока «Позиционные параметры» сравнивают несколько внешне похожих решений. Что важно заметить в этом фрагменте до его включения в автоматизацию?
BashПозиционные параметры · вариант B
f() { shift 2; printf '%s\n' "$1"; }
f only
Вопрос 7 из 20
Для блока «Возврат из функции» сравнивают несколько внешне похожих решений. Что действительно гарантирует или, наоборот, не гарантирует эта конструкция?
BashВозврат из функции · вариант B
f() { return 300; }
f
printf '%s\n' "$?"
Вопрос 8 из 20
Для блока «Код завершения» сравнивают несколько внешне похожих решений. Фрагмент запускают как часть служебного сценария. Как его следует оценить?
BashКод завершения · вариант B
run_task
printf 'task finished\n'
exit $?
Вопрос 9 из 20
В служебном сценарии найден следующий фрагмент по теме «Объявление функций». Какой ответ учитывает и полезный эффект, и остающееся ограничение кода?
BashОбъявление функций · вариант C
cleanup() { local tmp=$1; rm -f -- "$tmp"; }
Вопрос 10 из 20
В служебном сценарии найден следующий фрагмент по теме «Позиционные параметры». Код предлагают как альтернативу. Какова его точная техническая оценка?
BashПозиционные параметры · вариант C
f() { (($# >= 2)) || { printf 'need 2 args\n' >&2; return 64; }; shift 2; }
Вопрос 11 из 20
В служебном сценарии найден следующий фрагмент по теме «Возврат из функции». Что является главным свойством этого варианта?
BashВозврат из функции · вариант C
f() { local -n result=$1; result='ready'; return 0; }
f output
Вопрос 12 из 20
В служебном сценарии найден следующий фрагмент по теме «Код завершения». Как следует оценить конструкцию, не считая её автоматически исправлением?
BashКод завершения · вариант C
run_task
status=$?
printf 'task status=%d\n' "$status" >&2
exit "$status"
Вопрос 13 из 20
Для блока «Объявление функций» требуется формулировка без лишних обещаний. Где заканчивается защита, которую даёт рассматриваемая конструкция?
Вопрос 14 из 20
Для блока «Позиционные параметры» требуется формулировка без лишних обещаний. Что способно нарушить ожидаемый результат, хотя основной фрагмент написан корректно?
Вопрос 15 из 20
Для блока «Возврат из функции» требуется формулировка без лишних обещаний. Какой эксплуатационный компромисс здесь нельзя скрывать за успешным кодом возврата?
Вопрос 16 из 20
Для блока «Код завершения» требуется формулировка без лишних обещаний. Что обязательно нужно проверить в соседнем сценарии, чтобы не получить ложную надёжность?
Вопрос 17 из 20
В тесте «Функции и коды завершения» разбирается тема «Объявление функций». Какое правило позволяет правильно разобрать эту тему до запуска кода?
Вопрос 18 из 20
В тесте «Функции и коды завершения» разбирается тема «Позиционные параметры». Какое свойство механизма нельзя подменять удачным примером запуска?
Вопрос 19 из 20
В тесте «Функции и коды завершения» разбирается тема «Возврат из функции». Какая формулировка связывает частные примеры одним проверяемым правилом?
Вопрос 20 из 20
В тесте «Функции и коды завершения» разбирается тема «Код завершения». Что в этой теме является свойством языка, а не случайностью конкретного запуска?

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

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

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

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