Existem alguns casos que vêm à mente:
- argumentos ausentes,
- o argumento especial "-",
- o programa detecta que a entrada padrão não é um terminal e
- uma opção (ou variável de ambiente) substitui o comportamento.
Para argumentos ausentes, cat
é um exemplo útil. Da mesma forma grep
, sed
.
O argumento especial "-" é usado em vários programas para informar explicitamente a leitura da entrada padrão. Você pode encontrar discussões (com exemplos) nestes:
- Qual é a diferença entre STDIN e argumentos passou para o comando?
- Como ler stdin quando nenhum argumento é passado?
- Pipe, entrada padrão e argumentos de linha de comando no Bash
Para o caso em que a entrada padrão não é um terminal - de improviso, os casos que eu conheço são menos conhecidos:
- A caixa de diálogo verifica a inicialização se sua entrada for um terminal e, caso contrário, abrirá o dispositivo terminal. Isso faz parte de um esquema maior, no qual é possível ler dados de um canal, por exemplo, para o widget de medidor.
-
diffstat lida com argumentos perdidos lendo sua entrada da entrada padrão, mas além disso, seu
-v
(verbose) opção quando fazendo isso mostra progresso, por exemplo, um "." para cada arquivo - canalizar para o vi-like-emacs faz com que ele leia a entrada como um arquivo. O recurso comparável do vim (implementado [posteriormente 4 ), usa o argumento explícito "-".
Para argumentos especiais:
-
O diálogo tem uma opção
--gauge
que lê dados da entrada padrão. Também--input-fd
diz ao qual descritor de arquivo usar como entrada para pipes. -
O lynx tem uma opção
-stdin
dizendo para interpretar a entrada padrão como html. Caso contrário, aceita opções de configuração na entrada padrão, por exemplo, usando-get_data
ou-post_data
.