Что означает аргумент linux

Обновлено: 22.11.2024

Во многих случаях сценариям bash требуются значения аргументов для предоставления входных параметров сценарию. Вы можете обрабатывать аргументы командной строки в сценарии bash двумя способами. Один — с использованием переменных-аргументов, а другой — с использованием функции getopts. В этом руководстве показано, как обрабатывать аргументы командной строки.

Использование переменных-аргументов:

Переменная аргумента начинается с $0. Имя основного файла сценария хранится в переменной $0, которая получает значения аргументов из аргументов командной строки. Если в командной строке переданы два аргумента, то последовательно значения аргументов будут получены в переменных $1 и $2.

Пример -1: Отправка трех числовых значений в аргументах командной строки

Создайте файл bash со следующим скриптом. Скрипт будет получать значения с тремя аргументами и сохранять их в переменных $1, $2 и $3. Он будет подсчитывать общее количество аргументов и печатать значения аргументов, используя цикл без цикла. Сумма всех значений аргументов будет напечатана позже.

Следующий вывод появится после выполнения файла скрипта с тремя числовыми значениями аргумента: 50, 35 и 15.

Пример 2: использование имени файла в качестве аргумента

Создайте файл bash со следующим скриптом, чтобы подсчитать общее количество символов в любом файле. Здесь имя файла будет передано в качестве аргумента командной строки.

Запустите сценарий bash с именем файла в качестве единственного значения аргумента и запустите другую команду, чтобы проверить общее количество символов в этом файле. Здесь в качестве значения аргумента используется файл weekday.txt. Общее количество символов в файле weekday.txt – 57.

Использование функции getopts:

Если вы хотите сохранить данные в базе данных или любом файле или создать отчет в определенном формате на основе значений аргументов командной строки, функция getopts — лучший вариант для выполнения этой задачи. Это встроенная функция Linux. Таким образом, вы можете легко использовать эту функцию в своем скрипте для чтения отформатированных данных из командной строки.

Пример -3: Чтение аргументов функцией getopts

Создайте файл bash со следующим сценарием, чтобы понять, как использовать функцию getopts. Функция getopts используется с циклом while для чтения параметров и значений аргументов командной строки. Здесь используются 4 варианта: «i», «n», «m» и «e». оператор case используется для сопоставления конкретной опции и сохранения значения аргумента в переменной. Наконец, напечатайте значения переменной.

Запустите файл со следующими параметрами и значениями аргументов. Здесь p100 — значение параметра -i, «Горячий пирог» — значение параметра -n, «01-01-2021» — значение параметра -m, а «06-01-2021» — значение параметра - е вариант.

Когда вам нужно отправить простые значения в скрипте, лучше использовать переменные-аргументы. Но если вы хотите отправлять данные в отформатированном виде, лучше использовать функцию getopts для получения значений аргументов. Использование переменных-аргументов и опций getopts показано в следующем примере.

Пример 4: Чтение обычных аргументов и аргументов с параметрами getopts

Способы чтения аргументов командной строки с использованием переменных аргументов и параметров getopts были показаны отдельно в предыдущих примерах этого руководства. Но эти два способа можно использовать в одном скрипте для чтения значений аргументов командной строки. Создайте сценарий bash со следующим кодом для чтения значений аргументов командной строки, переданных опциями getopts и параметрами аргументов. Здесь используются три параметра getopts для чтения имени хоста, имени пользователя и пароля командной строки. Затем команда shift использовалась для удаления всех параметров getopts из команды для чтения значений командной строки с использованием переменных-аргументов. Этот скрипт прочитает и напечатает не более трех значений переменных-аргументов. Если после выполнения кода не будет передано значение аргумента без опции, то будет напечатано сообщение; в противном случае будут напечатаны значения переменной-аргумента.

Следующий вывод появится, если во время выполнения кода указана неправильная опция. Здесь опция -a не существует в скрипте.

Появится следующий вывод, если допустимые параметры со значениями указаны в командной строке во время выполнения кода.

Следующий вывод появится, если во время выполнения кода в командной строке используются допустимые параметры и нормальные значения аргументов. Здесь обычными аргументами являются клиент и сотрудник.

Использование ‘[email protected]’ для чтения аргументов командной строки:

Аргументы командной строки можно прочитать без использования переменных аргументов или параметров getopts. Использование «[email protected]» с первой скобкой — это еще один способ прочитать все значения аргументов командной строки.

Пример 5: Чтение значений аргументов командной строки без переменных

Создайте файл bash со следующим сценарием, чтобы считать значения аргументов без каких-либо переменных аргументов и вычислить сумму трех значений аргументов командной строки. «[email protected]» используется здесь с первыми квадратными скобками для чтения всех значений аргументов в массив. Далее будет напечатана сумма первых трех значений массива.

После выполнения приведенного выше сценария для значений аргументов 12, 20 и 90 появится следующий вывод. Сумма этих чисел равна 122.

Вывод:

Здесь показаны способы предоставления значений аргументов командной строки без каких-либо параметров и с параметрами. Здесь также показан способ чтения значений аргументов командной строки без использования переменных. Я надеюсь, что это руководство поможет читателям правильно использовать значения аргументов командной строки в своих сценариях bash.

Об авторе

Фахмида Есмин

Я веду курсы веб-программирования. Мне нравится писать статьи или учебные пособия на различные темы в области ИТ. У меня есть канал на YouTube, на котором публикуются различные учебные пособия по Ubuntu, Windows, Word, Excel, WordPress, Magento, Laravel и т. д.: Справка Tutorials4u.

аргумент, также называемый аргументом командной строки, представляет собой имя файла или другие данные, которые предоставляются команде для команда использовать его в качестве ввода. Команда — это инструкция, предписывающая компьютеру что-то сделать, например выполнить (т. е. запустить) программу.

Хотя такое использование слова аргумент на первый взгляд может показаться странным, оно уже давно используется в компьютерном программировании и математике, где оно относится к независимой переменной, значение которой определяет значение функции. .

Аргументы вводятся в командной строке в консоли или окне терминала после команды и любых параметров . Консоль — это полнотекстовый режим отображения, который занимает весь экран дисплея; окно терминала — это полностью текстовое окно в GUI (графическом пользовательском интерфейсе), которое эмулирует консоль. Каждый аргумент отделяется одним или несколькими пробелами от соседних аргументов, опций или команды.

В следующем примере команда wc (которая по умолчанию подсчитывает количество строк, слов и символов в тексте) имеет аргументы file1, файл2 и файл3:

То есть три имени файла в той же строке, что и wc, являются входными данными для него. wc читает три файла в том порядке, в котором они были записаны, а затем записывает количество строк, слов и символов, найденных в каждом из них, в стандартный вывод, который по умолчанию является экраном дисплея. .

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

wc имеет несколько вариантов. Среди них есть -w, который указывает подсчитывать только количество слов. Другим является -l, который говорит ему подсчитывать только количество строк. Эти два параметра можно использовать вместе для подсчета как количества слов, так и количества строк для каждого из трех файлов в приведенном выше примере, т. е.

Если аргумент состоит из двух или более слов, разделенных пробелами, он должен быть заключен в кавычки, чтобы система знала, что это один аргумент, а не несколько аргументов. Таким образом, для подсчета количества слов и строк в каждом из двух файлов с именами мой файл1 и мой файл2 можно использовать следующее:

Тот же результат достигается при использовании одинарных кавычек вместо двойных, т. е.

Эффективность аргументов часто можно повысить за счет использования подстановочных знаков и других регулярных выражений. Подстановочный знак — это символ, который используется для представления некоторой категории символов или символов при сопоставлении с образцом.Подстановочный знак с самым широким охватом и наиболее часто используемый — это звездочка ( * ), которая обозначает любую комбинацию символов, включая отсутствие символов. Его использование избавляет от необходимости вводить все имена отдельных файлов в качестве аргументов. Регулярные выражения — это мощный метод сопоставления с образцом, который широко используется для поиска файлов и данных в файлах.

Например, чтобы определить общее количество строк во всех html-файлах (т. е. файлах, которые могут создавать веб-страницы в браузере) в текущем каталоге ( т. е. каталог, в котором в данный момент работает пользователь), аргумент *.html можно использовать следующим образом:

Количество аргументов, которые может иметь команда, зависит от конкретной команды. Некоторые команды не принимают никаких аргументов. Другие не требуют каких-либо аргументов, но могут их принимать. Третьим требуется по крайней мере один аргумент, а некоторым требуется несколько аргументов.

Команда clear, которая используется для удаления всех предыдущих команд и вывода с экрана дисплея, является одной из очень немногих команд в Unix-подобных операционных системах, которые не принимают ни параметров, ни аргументов. То есть его можно использовать только следующим образом:

pwd, который означает настоящий рабочий каталог и сообщает пользователю имя и местоположение текущего каталога, также не принимает никаких аргументов. Скорее, он получает данные от shell (программы, которая считывает команды, которые вводятся в компьютерную систему, а затем выполняет их). Более того, у него есть только две основные опции: --help и --version. Таким образом, он почти всегда используется так же, как

Все, что вводится в той же строке после pwd, за исключением его параметров, просто игнорируется, и сообщения об ошибках не возвращаются.

Другие примеры команд, которые принимают только параметры и не принимают аргументы, включают dmesg, который показывает сообщения, созданные ядром, когда система загружается (т. е. ) и ps, который показывает процессы (т. е. экземпляры выполняемых программ) в системе.

Некоторые команды, такие как wc и cat, которые используются для чтения и объединения (т. е. объединения) файлов, могут иметь любое количество аргументов, включая ноль. В случае отсутствия аргументов эти команды могут получать входные данные из текста, набранного с клавиатуры, или из вывода, который перенаправляется от других команд через конвейеры.

Тип данных, допустимых для аргументов, зависит от конкретной команды. Чаще всего это имена файлов. Аргументами команды du, которая показывает размеры файлов и каталогов, могут быть имена файлов и/или каталогов. Команда apropos, которая ищет соответствующие темы в справочных страницах (т. е. в руководстве пользователя, встроенном в большинство Unix-подобных операционных систем), принимает все строки. (т.е. последовательности символов) в качестве аргумента(ов), а не только имена файлов.

Аргументами команды kill, которая используется для завершения неисправных процессов, являются идентификационные номера процессов (PID), которые автоматически генерируются операционной системой и используются им ссылаться на процессы. Команда w, показывающая, кто вошел в систему и что они делают, принимает в качестве аргументов только имена пользователей, хотя часто используется без каких-либо аргументов.

Примерами команд, требующих нескольких аргументов, являются cp и move, каждая из которых требует два аргумента: один для имени копируемого или перемещаемого файла и один для имя копии или места назначения.

Создана 15 июня 2004 г. Обновлена ​​25 мая 2005 г.
Авторские права © 2004 - 2005 Информационный проект Linux. Все права защищены.

Аргумент, также называемый аргументом командной строки, может быть определен как ввод, переданный в командную строку для обработки этого ввода с помощью заданной команды. Аргумент может быть в виде файла или каталога. Аргументы вводятся в терминале или консоли после ввода команды. Их можно задать как путь.

В чем разница между командой Linux и аргументом?

3 ответа. Команда разбивается на массив строк с именами arguments. Аргумент 0 — это (обычно) имя команды, аргумент 1, первый элемент, следующий за командой, и так далее. Эти аргументы иногда называют позиционными параметрами.

Что такое аргумент в bash?

Аргументы командной строки также называются позиционными параметрами. Эти аргументы специфичны для сценария оболочки на терминале во время выполнения. Каждая переменная, переданная в сценарий оболочки в командной строке, сохраняется в соответствующих переменных оболочки, включая имя сценария оболочки.

Что такое аргумент в сценарии оболочки?

Оболочка Unix используется для запуска команд и позволяет пользователям передавать этим командам аргументы времени выполнения.Эти аргументы, также известные как параметры командной строки, позволяют пользователям либо управлять потоком команды, либо указывать входные данные для команды.

Что означает аргумент командной строки?

Аргумент командной строки в C

Аргумент командной строки — это параметр, передаваемый программе при ее вызове. … Это в основном используется, когда вам нужно управлять вашей программой извне. Аргументы командной строки передаются в метод main().

Какой вариант доступен в Linux?

Опция, также называемая флагом или переключателем, представляет собой однобуквенное или полное слово, которое изменяет поведение команды заранее определенным образом. Опции отличаются от аргументов, которые представляют собой входные данные, предоставляемые командам, чаще всего это имена файлов и каталогов. …

Как создается процесс в UNIX?

Создание процессов в системе UNIX выполняется в два этапа: ответвление и выполнение. Каждый процесс создается с помощью системного вызова fork. … Форк создает копию вызывающего процесса. Вновь созданный процесс называется дочерним, а вызывающий процесс — родительским.

Что такое $1 в сценарии bash?

$1 — это первый аргумент командной строки, передаваемый сценарию оболочки. Также известны как позиционные параметры. … $0 — имя самого скрипта (script.sh) $1 — первый аргумент (filename1) $2 — второй аргумент (dir1)

Как передать аргумент в сценарии bash?

Аргументы можно передать сценарию во время его выполнения, записав их в виде списка, разделенного пробелами, после имени файла сценария. Внутри скрипта переменная $1 ссылается на первый аргумент в командной строке, $2 — на второй аргумент и так далее. Переменная $0 ссылается на текущий скрипт.

Что такое набор bash?

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

Как запустить сценарий оболочки из аргументов командной строки?

Просто перечислите аргументы в командной строке при запуске сценария оболочки. В сценарии оболочки $0 — это имя запускаемой команды (обычно это имя файла сценария оболочки); $1 — первый аргумент, $2 — второй аргумент, $3 — третий аргумент и т. д.…

Как передать аргумент командной строки?

Чтобы передать аргументы командной строки, мы обычно определяем main() с двумя аргументами: первый аргумент — это количество аргументов командной строки, а второй — список аргументов командной строки. Значение argc не должно быть отрицательным. argv(ARGument Vector) — это массив указателей на символы со списком всех аргументов.

Как запустить сценарий оболочки?

Этапы написания и выполнения скрипта

  1. Откройте терминал. Перейдите в каталог, в котором вы хотите создать скрипт.
  2. Создайте файл с расширением . расширение ш.
  3. Запишите сценарий в файл с помощью редактора.
  4. Сделайте скрипт исполняемым с помощью команды chmod +x .
  5. Запустите скрипт, используя ./ .

Какой первый аргумент командной строки?

Первый параметр main, argc, представляет собой количество аргументов командной строки. На самом деле, это на единицу больше, чем количество аргументов, потому что первый аргумент командной строки — это само имя программы! Другими словами, в приведенном выше примере с gcc первым аргументом является «gcc».

Что такое аргументы командной строки в примере?

Давайте посмотрим на пример аргументов командной строки, где мы передаем один аргумент с именем файла.

Аргументы командной строки (также называемые позиционными параметрами) — это аргументы, указанные в командной строке вместе с командой или сценарием, которые необходимо выполнить. Расположение аргументов в командной строке, а также расположение команды или самого скрипта хранятся в соответствующих переменных. Эти переменные являются специальными переменными оболочки. Изображение ниже поможет вам понять их.

Давайте создадим сценарий оболочки с именем «command_line_agruments.sh», он покажет предоставленные аргументы командной строки и подсчитает количество аргументов, значение первого аргумента и идентификатор процесса (PID) сценария.

Назначить исполняемые разрешения скрипту
Теперь выполните скрипты с аргументами командной строки
Смещение аргументов командной строки

Команда shift используется для перемещения аргументов командной строки на одну позицию влево. Во время этого хода теряется первый аргумент. В приведенном ниже сценарии «command_line_agruments.sh» используется команда Shift:

Теперь снова выполните скрипт.

Можно выполнить несколько сдвигов за одну попытку, указав желаемое количество сдвигов в качестве аргумента для команды shift.

5 мыслей о «Аргументах командной строки в сценариях оболочки Linux»

Большое спасибо

Вы пропустили [email protected], который будет использовать компетентный сценарий (в частности, «[email protected]») для перебора входных параметров, поскольку либо «$*», либо $* искажают параметры с помощью метасимволов оболочки ( т.е. не будет работать каждый раз, когда пользователю нужно указать входные параметры в кавычки).

Можете ли вы показать нам пример, пожалуйста.

Если команда была вызвана, например. `Команда «arg1», «arg two», «arg3», это три аргумента.

Написание `”$*”` в Bash означает “строка со всеми аргументами, соединенными пробелом. Выражение «[email protected]» означает «массив с каждым аргументом». (Это похоже на написание каждого аргумента, но вам не нужно знать, сколько их.)

Допустим, вы хотите использовать первый аргумент для какой-то логики, а остальные передать другой команде, скажем, mysql. Теперь вы можете сказать: `foo=$1; shift` — это «потребит» первый аргумент (`arg1`) для `$foo`. Отлично. Теперь ваш массив аргументов содержит только `arg two` и `arg3`.

Итак, теперь вы хотите передать эти два аргумента, например, «mysql». Но вызов `mysql “$*”` просто означает вызов mysql с *одним* аргументом, то есть строкой `arg two arg3`, что в принципе никогда не имеет смысла!.

Вызов `mysql “[email protected]”` почти всегда является тем, что вам нужно.

Использование любой версии синтаксиса без кавычек еще хуже и в значительной степени бесполезно: это просто означает, что теперь результирующее значение подвергается множеству различных расширений bash, разбиению слов (это `”аргумент” “два” “arg3 ») и т. д. и может привести к непредсказуемым результатам, основанным, например, на. что в настоящее время находится в каталоге, где вызывается команда.

Читайте также: