Параметры команд

Большинство команд, используемых в Bash, могут отдаваться как одним словом, так и предполагать после себя какие-либо уточняющие параметры.

Мы будем называть параметрами все, что идет после команды. При этом делить параметры на ключи и аргументы. Ключами будем называть то, чему обычно предшествует один или два знака минуса. Ключи, если присутствуют, ставятся перед аргументами. У команды могут быть как ключи, так и аргументы, так и только ключи или только аргументы.

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

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

Рассмотрим использование параметров на примере команды ncal, которая выводит на экран календарь. Без параметров она выведет календарь на текущий месяц.

Если мы хотим увидеть календарь за другой месяц, следует передать программе ncal два аргумента: месяц и год.

Если указать только один аргумент, то будет считаться, что передается только год. Будет выведен календарь на целый год.

С помощью ключа -b можно перевернуть календарь на 90 градусов. Понятно, что аргументы могут быть как указаны или нет. В последнем случае получится перевернутый календарь на текущий месяц.

У команд может быть множество ключей. Их можно комбинировать.

В данном случае используется два ключа. Ключ -w приказывает ncal выводить кроме прочего номера недель года. На скриншоте выше ключи записаны вместе. Однако можно было дать команду так: ncal -b -w 02 2019.

Опция не всегда обозначается маленькой буквой. Бывают ключи, обозначаемые заглавной буквой или словом. В случае слова используется два знака минуса, чтобы Bash понимал, что перед ним не перечень подряд идущих ключей, а только один. В примере ниже опции -V и --version программы python3 делают одно и тоже – выводят версию интерпретатора.

Существуют команды, которые не имеют смысла без аргументов, то есть для них не задано поведение "по-умолчанию". Например, команда sleep, заставляющая bash выполнить задержку перед следующей командой. Время можно указывать в секундах, минутах и др.

Отметим, что понятия "команда", "параметр", "ключ", "аргумент" не являются каким-либо стандартом. В терминологии Bash ключи также называют опциями, аргументы – операндами, то есть тем, над чем выполняется команда.

Однако с точки зрения программирования все, что содержит строка команды, это аргументы. Введенная строка передается программе целиком, где "разрезается" на отдельные слова, которые помещаются в массив, первый элемент которого – имя вызываемой программы. Далее программа так или иначе обрабатывает аргументы, если предполагает работу с ними.

Задание

Объясните, что делает команда echo. По результату выполнения echo -e "one\ntwo\tthree" объясните назначение ключа -e.

Курс с ответами к заданиям и дополнительными уроками в PDF


Введение в Linux и Bash. Курс




Все разделы сайта