Como recomendé printf
en un comentario, probablemente debería dar algunos ejemplos de su uso (aunque para imprimir un mensaje de uso, sería más probable que use las respuestas de Dennis o Chris). printf
es un poco más complejo de usar que echo
. Su primer argumento es una cadena de formato, en la que los escapes (como \n
) son siempre interpretados; también puede contener directivas de formato que comienzan con %
, que controlan dónde y cómo se incluyen los argumentos adicionales. Aquí hay dos enfoques diferentes para usarlo para un mensaje de uso:
En primer lugar, se podría incluir el mensaje completo en la cadena de formato:
printf "usage: up [--level <n>| -n <levels>][--help][--version]\n\nReport bugs to: \nup home page: \n"
Tenga en cuenta que a diferencia de echo
, debe incluir la nueva línea final de forma explícita. Además, si el mensaje contiene caracteres %
, deberían escribirse como %%
.Si usted quiere incluir los direcciones informe de errores y la página de inicio, pueden añadirse de forma natural:
printf "usage: up [--level <n>| -n <levels>][--help][--version]\n\nReport bugs to: %s\nup home page: %s\n" "$bugreport" "$homepage"
segundo lugar, usted podría simplemente utilizar el formato de cadena a hacer que imprima de cada argumento adicional en una línea independiente:
printf "%s\n" "usage: up [--level <n>| -n <levels>][--help][--version]" "" "Report bugs to: " "up home page: "
con esta opción, la adición de las direcciones de notificación de errores y la página de inicio es muy obvio:
printf "%s\n" "usage: up [--level <n>| -n <levels>][--help][--version]" "" "Report bugs to: $bugreport" "up home page: $homepage"
Si va a dar salida a un mensaje de uso en respuesta a una invocación incorrecta, que normalmente enviar ese mensaje en su lugar a error estándar de salida estándar, con 'echo> & 2 ...' –
@MarkReed El mensaje de uso se emite escribiendo '--help' (que debería ir a la salida estándar). – helpermethod
Para otros que vienen, más información sobre "aquí documentos" está disponible: http://www.tldp.org/LDP/abs/html/here-docs.html –