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

Аргументы скрипта и getopts

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

Отвечено: 0 из 20
⏱ --:--
0%
💡 Инструкция: Выберите один ответ из пяти. На 20 вопросов отведено 55 минут. В каждом вопросе верен только один вариант. После завершения вы увидите общий результат, оценки по 4 тематическим шкалам и подробные объяснения.
Вопрос 1 из 20
В тесте «Аргументы скрипта и getopts» показан фрагмент из блока «$@ и $*». Какое утверждение точно относится к показанному фрагменту?
Bash$@ и $* · вариант A
set -- 'a b' '' c
printf 'at:%s\n' "$#"
printf '<%s>\n' "$@"
printf 'star:<%s>\n' "$*"
Вопрос 2 из 20
В тесте «Аргументы скрипта и getopts» показан фрагмент из блока «Сдвиг позиционных параметров». Какой вывод об этом варианте можно сделать без догадок о внешнем контексте?
BashСдвиг позиционных параметров · вариант A
set -- a b c
first=$1
shift 2
printf '%s:%s:%s\n' "$first" "$#" "$1"
Вопрос 3 из 20
В тесте «Аргументы скрипта и getopts» показан фрагмент из блока «Опции». Какой разбор соответствует именно показанной последовательности команд?
BashОпции · вариант A
set -- -v -o result.txt input
while getopts ':vo:' opt; do
  printf '%s:%s\n' "$opt" "${OPTARG-}"
done
shift "$((OPTIND-1))"
printf 'rest:%s\n' "$*"
Вопрос 4 из 20
В тесте «Аргументы скрипта и getopts» показан фрагмент из блока «Обязательные параметры». Какое описание не приписывает фрагменту лишних гарантий?
BashОбязательные параметры · вариант A
input=${1:?usage: script INPUT OUTPUT}
output=${2:?usage: script INPUT OUTPUT}
printf '%s -> %s\n' "$input" "$output"
Вопрос 5 из 20
На ревью сценария по теме «$@ и $*» встретился этот код. Фрагмент запускают как часть служебного сценария. Как его следует оценить?
Bash$@ и $* · вариант B
forward() { command $@; }
Вопрос 6 из 20
На ревью сценария по теме «Сдвиг позиционных параметров» встретился этот код. Какой вывод наиболее точно привязан к показанной реализации?
BashСдвиг позиционных параметров · вариант B
while (($#)); do
  case $1 in --output) output=$2; shift 2;; esac
done
Вопрос 7 из 20
На ревью сценария по теме «Опции» встретился этот код. Какое утверждение о поведении кода остаётся точным на граничном входе?
BashОпции · вариант B
parse() { while getopts 'a' opt; do :; done; }
parse -a
parse -a
Вопрос 8 из 20
На ревью сценария по теме «Обязательные параметры» встретился этот код. Что важно заметить в этом фрагменте до его включения в автоматизацию?
BashОбязательные параметры · вариант B
input=$1
[[ -f $input ]] || echo 'not found'
Вопрос 9 из 20
Перед запуском фрагмента из раздела «$@ и $*» нужен точный прогноз. Как следует оценить конструкцию, не считая её автоматически исправлением?
Bash$@ и $* · вариант C
forward() { command "$@"; }
Вопрос 10 из 20
Перед запуском фрагмента из раздела «Сдвиг позиционных параметров» нужен точный прогноз. Какое суждение правильно описывает показанную реализацию?
BashСдвиг позиционных параметров · вариант C
case $1 in
  --output) (($# >= 2)) || { echo 'missing value' >&2; exit 64; }; output=$2; shift 2;;
esac
Вопрос 11 из 20
Перед запуском фрагмента из раздела «Опции» нужен точный прогноз. Какой ответ учитывает и полезный эффект, и остающееся ограничение кода?
BashОпции · вариант C
parse() { local OPTIND=1 opt; while getopts ':a' opt; do ...; done; }
Вопрос 12 из 20
Перед запуском фрагмента из раздела «Обязательные параметры» нужен точный прогноз. Код предлагают как альтернативу. Какова его точная техническая оценка?
BashОбязательные параметры · вариант C
(($# == 2)) || { printf 'usage: %s INPUT OUTPUT\n' "${0##*/}" >&2; exit 64; }
Вопрос 13 из 20
Этот вопрос относится к разделу «$@ и $*» теста «Аргументы скрипта и getopts». Что обязательно нужно проверить в соседнем сценарии, чтобы не получить ложную надёжность?
Вопрос 14 из 20
Этот вопрос относится к разделу «Сдвиг позиционных параметров» теста «Аргументы скрипта и getopts». На какой границе эта техника перестаёт быть достаточной сама по себе?
Вопрос 15 из 20
Этот вопрос относится к разделу «Опции» теста «Аргументы скрипта и getopts». Где заканчивается защита, которую даёт рассматриваемая конструкция?
Вопрос 16 из 20
Этот вопрос относится к разделу «Обязательные параметры» теста «Аргументы скрипта и getopts». Что способно нарушить ожидаемый результат, хотя основной фрагмент написан корректно?
Вопрос 17 из 20
В документации к сценарию уточняют контракт темы «$@ и $*». Что в этой теме является свойством языка, а не случайностью конкретного запуска?
Вопрос 18 из 20
В документации к сценарию уточняют контракт темы «Сдвиг позиционных параметров». Какое утверждение точнее всего описывает контракт рассматриваемого механизма?
Вопрос 19 из 20
В документации к сценарию уточняют контракт темы «Опции». Какое правило позволяет правильно разобрать эту тему до запуска кода?
Вопрос 20 из 20
В документации к сценарию уточняют контракт темы «Обязательные параметры». Какое свойство механизма нельзя подменять удачным примером запуска?

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

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

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

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