Большинство из нас используют сценарии Bash для обслуживания и некоторых других задач. Однако мы не всегда знакомы с различными вариантами Bash. Всякий раз, когда пользователь является новичком в оболочке Bash и Linux, он стремится найти заранее написанный сценарий Bash. Это связано с тем, что некоторые пользователи находят уникальные символы Bash, такие как $@, $_ и $ 1, сбивающими с толку. Начиная с параметра $@ в Bash, он используется для расширения позиционных аргументов. Каждый параметр расширяется до чего-то вроде отдельного слова всякий раз, когда расширение происходит в двойных кавычках. Отдельные параметры следует заключать в кавычки и выделять пробелом, если используется $@. Помните, что $@должны быть заключены в кавычки для правильной работы. Тем не менее, он ведет себя аналогично аргументам как отдельным строкам.
Мы рассмотрим несколько примеров, чтобы подробнее раскрыть функциональность $@ в скриптах Bash при использовании системы Ubuntu 20.04:
Пример 01:
Для начала нам нужно войти в систему из дистрибутива Ubuntu 20.04 как пользователь sudo. После успешного входа в систему мы откроем командную строку, чтобы начать работу. Чтобы открыть его, используйте «Ctrl + Alt + T». В качестве альтернативы мы также можем использовать область действий, чтобы найти консольный терминал из строки поиска. После его правильного открытия мы начнем работать с $@ в Bash, создав новый файл Bash. Итак, мы использовали команду touch с именем файла «one.sh». Обратите внимание, что файл Bash имеет расширение «.sh». Нажмите «Enter» после написания следующей инструкции в оболочке, чтобы запустить ее. Вы найдете только что сгенерированный файл Bash в своем домашнем каталоге Ubuntu 20.04:
$ touch one.sh
Теперь файл Bash создан; мы должны открыть его в редакторе, чтобы добавить и отредактировать в нем сценарий Bash. Итак, мы будем открывать его с помощью редактора «GNU Nano» из оболочки терминала. Следовательно, мы использовали команду ключевого слова «nano» в оболочке вместе с именем файла как «one.sh», как показано на следующем изображении:
$ nano one.sh
Вам необходимо написать следующий трехстрочный скрипт в вашем Bash-файле «one.sh». Сначала мы добавили в файл расширение Bash. После этого мы использовали три оператора echo в этом скрипте, чтобы использовать три специальных символа и вывести их соответствующие результаты. Обратите внимание, что символ «$#» использовался для вывода общего числа строк ввода или параметров значений, которые будут добавлены пользователем в оболочку. Символ «$@» используется для отображения этих трех значений или параметров на терминале, а символ «$?» У персонажа есть особая задача – вернуть 0, если последняя команда прошла успешно. В Bash ярлык «Ctrl + S» часто используется для сохранения файла Bash, когда он открыт в редакторе Nano. Итак, сохраните файл one.sh и оставьте его, используя «Ctrl + X», чтобы вернуть его в терминал.
Теперь вновь созданный сценарий Bash сохранен и защищен в нашей системе; пора сделать его исполняемым. Обратите внимание, что такой символ, как $@, принимает параметры значений в терминале во время выполнения файла. Итак, используйте запрос ключевого слова «bash» в своей оболочке Ubuntu с именем файла «one.sh». И присвоение значений параметров, как указано. Результатом вывода является трехстрочный вывод. Первая строка показывает общее количество добавленных параметров. Вторая строка отображает значения аргументов, переданных пользователем. Наконец, в третьей строке в качестве возвращаемого значения отображается 0, потому что команда второй строки выполнена успешно:
$ bash one.sh Arg1 Arg2 Arg3
Пример 02:
Чтобы лучше понять концепцию символа $@ и функциональности, нам понадобится еще один пример в нашей статье. Следовательно, мы будем открывать тот же файл «one.sh» с помощью редактора GNU nano. Для этого мы попробовали следующую инструкцию и нажали кнопку «Enter» на клавиатуре, чтобы продолжить:
$ nano one.sh
Поскольку файл открыт сейчас, мы будем добавлять в него новый и обновленный сценарий Bash. На этот раз мы использовали простой сценарий Bash для уточнения функции символа $@. Итак, вам нужно обновить свой сценарий Bash, используя тот, который показан на изображении ниже. Мы используем цикл for, чтобы принимать по одному элементу за раз в качестве аргументов, переданных в $@ пользователем на терминале. Каждый элемент отображается на терминале с помощью оператора echo.
В инструкции Bash мы передали 5 аргументов строкового типа вместе с именем файла «one.sh». После нажатия клавиши «Enter» терминал отобразился с каждым аргументом отдельно:
$ bash one.sh Arg1 Arg2 Arg3 Arg4 Arg5
Пример 03:
Давайте подробнее рассмотрим другой пример $@, описанный выше. В этом примере мы будем использовать $@ и $ * для сравнения и различения работы обоих специальных символов. Таким образом, мы сможем правильно понять работу символа $@. Чтобы открыть уже созданный файл «one.sh», напишите и затем выполните следующую инструкцию в консоли Ubuntu 20.04.
$ nano one.sh
Мы обновили приведенный выше пример кода. Все, что мы сделали, это добавили тот же код для «$*» в цикл for.
Во время выполнения из-за использования символа $* отображается первая строка как все параметры. Все остальные строки являются выводом символа $@ :
$ bash one.sh Arg1 Arg2 Arg3 Arg4 Arg5
Пример 04:
В нашем последнем примере мы будем объяснять функциональность символа $@ с помощью функций и циклов. Поэтому, чтобы обновить сценарий Bash, мы снова открыли файл «one.sh» с помощью команды редактора nano в оболочке следующим образом:
$ nano one.sh
На этот раз мы использовали метод foo () для вывода аргументов, переданных в соответствующие методы специальных символов, до тех пор, пока он не ничего получит. Метод «Dollar1» предназначен для использования специального символа $@, а «Dollar2» – для функционирования символа $*. Оба метода содержат вызов метода foo() со специальным символом $@ и $* отдельно для передачи аргументов. Методы Dollar1 и Dollar2 вызываются после операторов echo, в то время как оба содержат те же три аргумента, что и их параметрические значения.
Выполнение кода показывает выходные данные для методов Dollar1 и Dollar2 по отдельности. «Using $@» показывает вывод для $@, а «Using $*» показывает вывод для символа $* отдельно.
$ bash one.sh
Заключение:
В этой статье описано, как использовать $@ в сценарии Bash, объявить его и как это работает. Мы также описали разницу между $@ и другими символами, связанными с долларом, чтобы сделать ее более понятной. Мы надеемся, что вам понравилось это при внедрении.