Sobes.tech
Back to questions
Middle
6

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

Companies where asked
МТСМТС

Answer from AI

sobes.tech AI

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

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

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

Пример:

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

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

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

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