Dato che ho raccomandato printf
in un commento, dovrei probabilmente fornire alcuni esempi del suo utilizzo (sebbene per la stampa di un messaggio di utilizzo, avrei più probabilità di usare le risposte di Dennis o Chris). printf
è un po 'più complesso da usare di echo
. Il suo primo argomento è una stringa di formato, in cui gli escape (like \n
) sono sempre interpretati; può anche contenere direttive di formato che iniziano con %
, che controllano dove e come eventuali argomenti aggiuntivi sono inclusi in esso. Ecco due diversi approcci per usarlo per un messaggio di utilizzo:
Innanzitutto, potresti includere l'intero messaggio nella stringa di formato:
printf "usage: up [--level <n>| -n <levels>][--help][--version]\n\nReport bugs to: \nup home page: \n"
Si noti che echo
, diversamente , è necessario includere esplicitamente la nuova riga finale. Inoltre, se il messaggio contiene %
caratteri, dovrebbero essere scritti come %%
. Se si desidera includere gli indirizzi bugreport e homepage, è possibile aggiungerli in modo abbastanza naturale:
printf "usage: up [--level <n>| -n <levels>][--help][--version]\n\nReport bugs to: %s\nup home page: %s\n" "$bugreport" "$homepage"
In secondo luogo, potresti semplicemente usare la stringa di formato per farlo stampare ogni argomento aggiuntivo su una riga separata:
printf "%s\n" "usage: up [--level <n>| -n <levels>][--help][--version]" "" "Report bugs to: " "up home page: "
Con questa opzione, l'aggiunta degli indirizzi bugreport e homepage è abbastanza ovvia:
printf "%s\n" "usage: up [--level <n>| -n <levels>][--help][--version]" "" "Report bugs to: $bugreport" "up home page: $homepage"
echo >&2 ...