Sobes.tech
Назад к вопросам
Middle
7

Что означает конструкция $@ в bash?

Компании, где спрашивали
МТСМТС

Ответ от нейросети

sobes.tech AI

В bash конструкция $@ представляет собой список всех позиционных параметров (аргументов), переданных скрипту или функции, при этом каждый аргумент сохраняет свою целостность как отдельный элемент.

Разница между $@ и $* в том, как они обрабатываются при использовании в кавычках:

  • "$@" — каждый аргумент рассматривается как отдельная строка, что удобно для передачи аргументов дальше без потери разделения.
  • "$*" — все аргументы объединяются в одну строку, разделённую первым символом из переменной IFS (обычно пробел).

Пример:

#!/bin/bash
for arg in "$@"; do
  echo "Аргумент: $arg"
done

Если вызвать скрипт с аргументами one "two three" four, то вывод будет:

Аргумент: one
Аргумент: two three
Аргумент: four

Это важно для корректной обработки аргументов с пробелами.