>_ IzzyLab

Практическое задание

Заквотируй "$@"

легко

Скрипт /root/greet.sh должен печатать каждый аргумент отдельной строкой, но на аргументах с пробелами ломается. Почини цитирование так, чтобы shellcheck не выдавал замечаний, а аргумент вроде «two words» считался одним.

Что потренируешь:
  • shellcheck
  • цитирование
  • $@
  • SC2068
  • word splitting

Разбор темы

"$@" в двойных кавычках — единственно верный способ передать список аргументов дальше: он разворачивает каждый позиционный параметр как отдельное слово, не подвергая его повторному разбиению по пробелам и glob-раскрытию. Без кавычек ($@) или через $* bash сначала склеивает/подставляет аргументы, а затем режет их по IFS, из-за чего элементы с пробелами распадаются. shellcheck ловит это правилом SC2068.

Что проверяется

  1. shellcheck без замечаний
  2. аргумент с пробелом — один

Как это выглядит