Como recomendei printf
em um comentário, provavelmente eu deveria dar alguns exemplos de seu uso (embora para imprimir uma mensagem de uso, seria mais provável que eu usasse as respostas de Dennis ou Chris). printf
é um pouco mais complexo de usar do que echo
. Seu primeiro argumento é uma string de formato, na qual escapes (como \n
) são sempre interpretados; ele também pode conter diretivas de formato começando com %
, que controlam onde e como quaisquer argumentos adicionais são incluídos nela. Aqui estão duas abordagens diferentes para usá-lo para uma mensagem de uso:
Primeiro, você pode incluir a mensagem inteira na string de formato:
printf "usage: up [--level <n>| -n <levels>][--help][--version]\n\nReport bugs to: \nup home page: \n"
Observe que echo
, ao contrário , você deve incluir explicitamente a nova linha final. Além disso, se a mensagem contiver algum %
caractere, ele deverá ser escrito como %%
. Se você deseja incluir o relatório de erros e os endereços da página inicial, eles podem ser adicionados naturalmente:
printf "usage: up [--level <n>| -n <levels>][--help][--version]\n\nReport bugs to: %s\nup home page: %s\n" "$bugreport" "$homepage"
Segundo, você pode usar a string de formato para imprimir cada argumento adicional em uma linha separada:
printf "%s\n" "usage: up [--level <n>| -n <levels>][--help][--version]" "" "Report bugs to: " "up home page: "
Com esta opção, adicionar o relatório de erros e os endereços da página inicial é bastante óbvio:
printf "%s\n" "usage: up [--level <n>| -n <levels>][--help][--version]" "" "Report bugs to: $bugreport" "up home page: $homepage"
echo >&2 ...