Não há convenção, como você percebeu. Isso depende totalmente do que o aplicativo está fazendo e do papel do argumento do host na linha de comando, bem como de como os aplicativos relacionados ao seu script fazem isso. Portanto, a resposta para isso é mais provável que seja baseada em opinião.
Para "opções longas", --host=hostname
pode ser uma boa escolha, mas essa é uma opinião pessoal e, da mesma forma, -h
como uma opção curta. É assim que os clientes MySQL / MariaDB e PostgreSQL fazem isso.
Como a Derobert aponta nos comentários para sua pergunta, -h
para um nome de host pode colidir com o uso de -h
para obter ajuda, mas -?
, --help
ou executar o aplicativo com nenhum argumento , às vezes é usado para isso.
Também pode ser útil indicar para que serve o nome do host que acompanha uma opção específica, como --target=hostname
e --jumphost=hostname
etc. Se você deseja indicar que o host precisa ser um endereço IP (e não é um nome de host), é possível usar --addr=ipaddr
ou algo semelhante. Algumas ferramentas usam -T
e -U
para especificar qual endereço de ligação deve ser usado com os soquetes TCP e UDP, respectivamente (especificamente syslogd
no OpenBSD). Mais uma vez, isso se resume ao que seu script está realmente fazendo.
Se seu script de shell usar várias opções para modificar seu comportamento enquanto sempre operando em um nome de host, não use uma opção para especificar o nome do host, como ssh
.
No final, veja como os utilitários semelhantes estão gerenciando seus sinalizadores de linha de comando e combinando com algo consistente. Isso é especialmente importante se você estiver criando um conjunto de vários scripts para executar tarefas relacionadas. Ou seja, não use --host=hostname
em um enquanto você tem -i addr
em outro.