- Muitos utilitários de linha de comando oferecem suporte a opções no formato curto (
-f) e no formato longo (--force)
- O formato curto é para uso interativo; em scripts, recomenda-se usar o formato longo
- Por exemplo, no terminal, você digita
$ git switch -c my-new-branch
- Em um script de release, escreva assim:
try shell.exec("git fetch origin --quiet", .{});
try shell.exec("git switch --create release-{today} origin/main", .{ .today = stdx.DateUTC.now() }, );
- As opções no formato longo são muito mais descritivas para quem lê
1 comentários
Comentários do Hacker News
Eu prefiro opções longas, mas quando é preciso chamar comandos POSIX de forma portável, opções curtas são a única escolha. O POSIX não especifica opções longas
diffgrep, pode ser mais eficiente usar algo comolibpcregit,hg,rg,agetc., faz sentido usar opções longasNão se deve misturar interpolação de strings com execução de comandos
execv(2),execvp(2)etc.Concordo que se deve usar opções longas, mas é preciso considerar a portabilidade
Não se esqueça de usar
--depois de todas as opções e antes dos argumentos dinâmicosAntes de chamar um comando, deve-se verificar se o comprimento do comando é maior que
ARG_MAXgrep --ignore-case --files-with-matches -- "hello" *.cCMD="grep --ignore-case --files-with-matches -- \"hello\" *.c"ARG_MAX=$(getconf ARG_MAX)CMD_LEN=${#CMD}if (( CMD_LEN > ARG_MAX )); thenecho "Error: Command length ($CMD_LEN) exceeds ARG_MAX ($ARG_MAX)." >&2exit 1fieval "$CMD"# aviso: avalia os nomes de arquivosConcordo com essa abordagem. Outra vantagem é que fica mais fácil procurar no man page com
grepo que cada opção fazSe você quiser tornar um script portável para outros sistemas POSIX, talvez precise usar opções curtas
As opções devem ficar em linhas separadas para facilitar o acompanhamento e o
git blameEsta é uma das regras básicas ao escrever scripts. Se houver opção longa disponível, ela deve ser usada
Opções no formato longo são muito mais descritivas para o leitor