1

У меня есть в основном unixoid программное обеспечение, которое обычно пишет в файл, указанный в качестве параметра.

Теперь я хочу добавить возможность писать в stdout. Но запись в файл все еще должна быть стандартным поведением.

Я думаю, что видел команды оболочки, такие как

command --outfile -

или же

command -

Это обычная практика? К сожалению, я не помню команд, которые работали так.

3 ответа3

3

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

Если вы создаете программу, вы можете сделать дополнительный шаг и использовать явный параметр -stdout для печати на стандартный вывод. Поскольку - синтаксис не является официальным стандартом, я хотел бы предложить , что лучше ошибиться в сторону читаемости.

1

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

1

Обычной практикой (например, gzip) является запись в стандартный вывод, если либо файл не указан (при условии, что вы можете это определить), либо в качестве последнего параметра указан дефис.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .