Що таке '@' у bash?
$@ є одне з двох представлень «позиційного параметра». у bash, інший — $*. Зауважте, що під час виклику за допомогою $* до foo() передається рівно один аргумент, але за допомогою $@ до foo() передається три аргументи. 29 грудня 2013 р.
Змінна $@ в Bash є в основному використовується в сценаріях і функціях для представлення всіх позиційних параметрів, що передаються в сценарій або функцію. Він не застосовується безпосередньо або використовується поза цими контекстами таким же чином.
Біт "$@" буде розгорнуто до списку позиційних параметрів (зазвичай аргументів командного рядка), окремо взятих у лапки, щоб уникнути розбиття слів і генерації імен файлів ("globbing"). Виконавчий буде замінити поточний процес на процес, отриманий у результаті виконання його аргументу.
Є спеціальні параметри $* і $@ спеціальні параметри, які дозволяють отримати доступ до всіх аргументів командного рядка одночасно. $* і $@ діятимуть однаково, якщо їх не взято в подвійні лапки "". Обидва параметри вказують аргументи командного рядка.
У Bash (і в усіх POSIX-подібних оболонках) $@ або ${@} є "спеціальний параметр", який розширюється до списку всіх позиційних параметрів (= аргументи командного рядка).
Подвійні лапки також надають символам ( * ) і ( @ ) особливого значення, коли розширення оболонки вводиться за допомогою символу ( $ ). Наприклад, ( $@ ) передає вказані параметри окремо, тоді як ( $* ) передає всі параметри як один параметр.