Выбор ответа Junior Bash-скрипты спрашивают часто обновлено

Переменная без кавычек

Вопрос

В f лежит my report.txt. Что выполнит команда rm $f?

Попробуйте сами

Выберите вариант, и откроется разбор.

Показать ответ и разбор

Коротко

Правильный ответ: Попытается удалить два файла: my и report.txt. Без кавычек значение переменной проходит разбиение по словам (по IFS), и rm получает два аргумента.

Варианты ответа

  1. Удалит файл my report.txt, пробел в значении сохранится
  2. Попытается удалить два файла: my и report.txtправильный ответ
  3. Выдаст синтаксическую ошибку из-за пробела в значении
  4. Удалит все файлы *.txt в текущем каталоге

Разбор

Без кавычек значение переменной проходит разбиение по словам (по IFS), и rm получает два аргумента. Правильно rm "$f". Синтаксической ошибки не будет, а раскрытие масок случилось бы, только если бы в значении были * или ?.

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.