Выбор ответа Junior Bash-скрипты спрашивают часто обновлено
Переменная без кавычек
Вопрос
В f лежит my report.txt. Что выполнит команда rm $f?
Попробуйте сами
Выберите вариант, и откроется разбор.
Показать ответ и разбор
Коротко
Правильный ответ: Попытается удалить два файла: my и report.txt. Без кавычек значение переменной проходит разбиение по словам (по IFS), и rm получает два аргумента.
Варианты ответа
- Удалит файл
my report.txt, пробел в значении сохранится - Попытается удалить два файла:
myиreport.txtправильный ответ - Выдаст синтаксическую ошибку из-за пробела в значении
- Удалит все файлы
*.txtв текущем каталоге
Разбор
Без кавычек значение переменной проходит разбиение по словам (по IFS), и rm получает два аргумента. Правильно rm "$f". Синтаксической ошибки не будет, а раскрытие масок случилось бы, только если бы в значении были * или ?.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.