Estoy tratando de usar printf para formatear una salida bonita en un script bash
p.ej:
-----------------------
| This is some output |
-----------------------
Pero me he tropezado con un comportamiento que no entiendo.
$ printf "--"
me da el error printf: usage: printf [-v var] format [arguments]
y
$ printf "-stuff"
resultados en-bash: printf: -s: invalid option
Entonces, aparentemente printf piensa que estoy tratando de pasar algunos argumentos mientras no lo estoy.
Mientras tanto, completamente por accidente, he encontrado esta solución:
$ printf -- "--- this works now ----\n"
me da--- this works now ----
¿Alguien puede explicar este comportamiento?
echo
eso que fallaría al hacerlo echo ------------
? La mayoría solo admite -n
(sin línea posterior), -e
(interpreta caracteres con barra invertida) y posible -E
(NO los interpreta) y no genera errores cuando se encuentran otros argumentos similares a las opciones, ¿verdad? (EDITAR: GNU /bin/echo
también es compatible --help
y --version
.)