При запуске программы в Unix указывается имя исполняемого файла и список параметров, разделённых пробелами. Дополнительно, может быть задано перенаправление стандартных файлов ввода/вывода.
В зависимости от программы, параметры могут интерпретироваться как опции, как строки или как имена файлов. Единого стандарта нет, но есть несколько популярных соглашений. Однобуквенные опции, как правило, начинаются со знака минус: -x
или -x значение
, опции с длинными именами - с двух минусов: --xxx-xxx
или --xxx-xxx=значение
. Программы, которые не работают с файлами, могут использовать опции без знака минус.
Для того, чтобы отличить имена файлов от опций, программы, принимающие в качестве аргументов имена файлов, могут дополнительно использовать следующие соглашения:
Примеры:
cat file # Команда cat интерпретирует параметр как имя файла
echo file # Команда echo интерпретирует параметр как текст
cat -n file # Обе команды интерпретируют -n как опцию
echo -n file # правда, с разным значением
cat -- -n file # Команда cat интерпретирует "--" как конец опций
echo -- -n file # Команда echo не интерпретирует "--" как конец опций
cat - file # Команда cat интерпретирует "-" как чтение из стандартного ввода
echo - file # Команда echo не читает из файлов и не придает "-" особого значения
dd if=file of=/dev/null # Команда dd использует нестандартный формат опций
ps ax --forest # Команда ps все аргументы трактует как опции. Короткие опции используются без минуса
java -version # java использует длинные опции с одним минусом