В Bash большинство команд можно вводить как одним, так и несколькими словами, добавляя уточняющие параметры.
Под параметрами мы будем понимать все, что следует после команды. Они делятся на ключи и аргументы. Ключи, обычно предваренные одним или двумя дефисами, идут перед аргументами, если они есть. Команда может иметь одновременно ключи и аргументы, либо только одно из них.
Аргументы, как правило, указывают, над чем выполняется команда. Например, чтобы перейти в другую директорию, необходимо указать имя этой директории как аргумент. Для отображения содержимого файла следует передать имя файла.
Ключи изменяют поведение программы. Например, при помощи команды для просмотра содержимого каталога можно просто вывести список объектов. Однако, воспользовавшись определенными ключами, можно получить детальную информацию о каждом объекте.
Рассмотрим пример команды ncal, выводящей на экран календарь. При отсутствии параметров она покажет текущий месяц.
Для отображения календаря другого месяца ncal требует два аргумента: month и год.
Если указан только один аргумент, предполагается, что это год, и будет показан календарь на весь год.
Ключ -b позволяет повернуть календарь на 90 градусов. Аргументы могут быть заданы или нет. Если они отсутствуют, то будет выведен повернутый календарь текущего месяца.
Команды могут иметь множество ключей, которые можно комбинировать.
В данном примере используются два ключа. Ключ -w указывает ncal выводить номера недель года. Ключи можно указать
вместе, как показано на скриншоте, или раздельно: ncal -b -w
.
Не всегда опция обозначается малой буквой. Бывают ключи, представленные заглавной буквой или словом. В случае слова используется два дефиса, чтобы Bash распознал его как единственный ключ. Ключи -V и --version программы python3 выполняют одну и ту же функцию — выводят версию интерпретатора.
Существуют команды без аргументов, их выполнение не имеет смысла, так как не предусмотрено действие "по-умолчанию". Команда sleep заставляет bash задержаться перед выполнением следующей команды. Время задержки можно задать в секундах, минутах и других единицах.
Отметим, что такие термины, как "команда", "параметр", "ключ", "аргумент", не считаются стандартными. Например, в Bash ключи также называют опциями, а аргументы – операндами.
С точки зрения программирования, все в строке команды – это аргументы. Введенная строка целиком передается программе, которая разбивает её на отдельные слова, помещаемые в массив, где первый элемент — имя вызываемой программы. Программа обрабатывает аргументы, если это необходимо.
Задание
Объясните, как работает команда echo. На основе выполнения команды echo -e "one\ntwo\tthree"
поясните, какое назначение имеет ключ -e.