Поиск по сайту:
Вот — КТО ты есть! Но не забывай и о том — ЧТО ты есть! (Бернард Клервоский).

Что такое $@ в сценарии Bash

26.08.2021
Что такое $@ в сценарии Bash?

Большинство из нас используют сценарии 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», чтобы вернуть его в терминал.

Читать  Как добавлять и удалять пользователей на CentOS 8

Теперь вновь созданный сценарий 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.

Читать  Команда запуска Docker с примерами

Во время выполнения из-за использования символа $* отображается первая строка как все параметры. Все остальные строки являются выводом символа $@ :

$ 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, объявить его и как это работает. Мы также описали разницу между $@ и другими символами, связанными с долларом, чтобы сделать ее более понятной. Мы надеемся, что вам понравилось это при внедрении.

Читать  Как использовать команду readarray для чтения 2D-массива в Bash

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (2 оценок, среднее: 5,00 из 5)
Загрузка...
Поделиться в соц. сетях:


0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest

**ссылки nofollow

0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии

Это может быть вам интересно


Рекомендуемое
Временная таблица MySQL - это уникальный тип таблицы, который позволяет…

Спасибо!

Теперь редакторы в курсе.