Параметры команд
Большинство команд, используемых в 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