- Muchas utilidades de línea de comandos admiten opciones en formato corto (
-f) y en formato largo (--force)
- El formato corto es para uso interactivo; en los scripts se recomienda usar el formato largo
- Por ejemplo, en la terminal se escribe
$ git switch -c my-new-branch.
- En un script de lanzamiento se escribe así:
try shell.exec("git fetch origin --quiet", .{});
try shell.exec("git switch --create release-{today} origin/main", .{ .today = stdx.DateUTC.now() }, );
- Las opciones en formato largo son mucho más descriptivas para quien lee
1 comentarios
Comentarios de Hacker News
Prefiero las opciones largas, pero cuando hay que invocar comandos POSIX de forma portable, las opciones cortas son la única alternativa. POSIX no especifica opciones largas
diffgrep, puede ser más eficiente usar algo comolibpcregit,hg,rg,ag, tiene sentido usar opciones largasNo se debe mezclar la interpolación de cadenas con la ejecución de comandos
execv(2),execvp(2), etc.Estoy de acuerdo en que se deben usar opciones largas, pero hay que considerar la portabilidad
No hay que olvidar usar
--después de todas las opciones y antes de los argumentos dinámicosAntes de invocar un comando, hay que verificar si su longitud supera
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"# Advertencia: evalúa los nombres de archivoEstoy de acuerdo con este enfoque. Otra ventaja es que resulta más fácil buscar en la página del man qué hace cada opción
Si quieres que tu script sea portable a otros sistemas POSIX, quizá tengas que usar opciones cortas
Las opciones deberían ir en líneas separadas para que sea más fácil rastrearlas y hacer
git blameEsta es una de las reglas básicas al escribir scripts. Si existen opciones largas, hay que usarlas
Las opciones en formato largo son mucho más descriptivas para el lector